Swimming pool cleaning system with video capture device

By using independent video capture devices and computing devices to process video data in the pool cleaning system, the problem of relying on expensive sensors in the prior art increases cost and complexity is solved, and efficient and economical swimming pool cleaning results are achieved.

CN119904513APending Publication Date: 2025-04-29DEGRII CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311405628.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-10-27
Publication Date
2025-04-29

AI Technical Summary

Technical Problem

Existing pool cleaning robots rely on expensive sensors such as laser, ultrasonic, infrared or underwater vision sensors to monitor pool environments, adding cost and hardware complexity.

Method used

Independent video capture devices are used to determine and track the location of the pool cleaning robot, and the computing device processes video data to generate movement instructions to avoid installing expensive sensors on the robot.

Benefits of technology

Reduces the cost and hardware complexity of pool cleaning robots, while achieving accurate pool cleaning path planning and execution.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119904513A_ABST
    Figure CN119904513A_ABST
Patent Text Reader

Abstract

A pool cleaning system is provided. The system includes a video capture device, a pool cleaning robot separate from the video capture device, and a computing device. A video capture device may send one or more videos of a pool to a computing device. The computing device may use the one or more videos to determine a location of the pool cleaning robot relative to the pool. The computing device may generate movement instructions for the pool cleaning robot based on the location of the pool cleaning robot.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates generally to a pool cleaning system, and more particularly to a pool cleaning system having a video capture device to assist in controlling a pool cleaning robot. Background Art

[0002] Pool cleaning robots can be used to clean the bottom and walls of swimming pools. Pool cleaning robots can provide precise and thorough cleaning and reduce manual involvement. Therefore, pool cleaning robots are becoming more and more popular in residential and commercial scenarios.

[0003] Some pool cleaning robots rely on laser or vision sensors to monitor the pool environment and generate paths or routes for the pool cleaning robot to perform cleaning tasks. Using laser, ultrasonic, infrared or underwater vision sensors may increase the cost and hardware complexity of the pool cleaning robot. Summary of the invention

[0004] Therefore, it would be desirable to have a system and method that takes into account at least some of the issues discussed above as well as other possible issues.

[0005] Exemplary embodiments of the present disclosure relate to a pool cleaning system having a video capture device to assist in controlling a pool cleaning robot. Exemplary embodiments may provide a pool cleaning system that does not require the use of expensive sensors on the pool cleaning robot. Instead, exemplary embodiments utilize a separate video capture device to determine and track the location of the pool cleaning robot. Thus, exemplary embodiments may reduce the cost and hardware complexity of the pool cleaning robot.

[0006] Therefore, the present disclosure includes, but is not limited to, the following exemplary embodiments.

[0007] Some embodiments provide a system. The system includes a video capture device, a pool cleaning robot separate from the video capture device, and a computing device. The video capture device is configured to send one or more videos of a pool to the computing device. The computing device includes a memory and a processor, wherein the memory stores executable instructions, which in response to execution by the processor cause the computing device to at least: determine a position of the pool cleaning robot relative to the pool using the one or more videos, and generate movement instructions for the pool cleaning robot based on the position of the pool cleaning robot.

[0008] In some embodiments, the one or more videos include a first video and a second video.

[0009] In some embodiments, causing the computing device to determine the position of the pool cleaning robot includes: creating a coordinate system for the pool using the first video; and determining the position of the pool cleaning robot relative to the pool using the second video and based on the coordinate system.

[0010] In some embodiments, the computing device is separate from the pool cleaning robot.

[0011] In some embodiments, the pool cleaning robot includes a marker, and the video capture device is configured to track the location of the pool cleaning robot based on the marker.

[0012] In some embodiments, the computing device is connected to a floating wireless charger for charging the pool cleaning robot.

[0013] In some embodiments, the computing device is separate from the video capture device.

[0014] In some embodiments, the computing device includes a video capture device.

[0015] In some embodiments, the system further includes a secondary computing device that acts as a server in a cloud computing system.

[0016] Some embodiments provide a computing device. The computing device includes a memory and a processor, wherein the memory stores executable instructions, and the executable instructions, in response to the execution of the processor, cause the computing device to at least:

[0017] Determining a position of a pool cleaning robot relative to a pool using one or more videos sent from a video capture device to a computing device; and generating movement instructions for the pool cleaning robot based on the position of the pool cleaning robot, wherein the pool cleaning robot is separated from the video capture device.

[0018] Some embodiments provide a method implemented by a computing device, the method comprising: determining a position of a pool cleaning robot relative to a pool using one or more videos transmitted from a video capture device to the computing device; and generating movement instructions for the pool cleaning robot based on the position of the pool cleaning robot, wherein the pool cleaning robot is separate from the video capture device.

[0019] The features and other features, aspects and advantages of the present disclosure will become apparent by reading the following detailed description and the accompanying drawings, which are briefly described below. The present disclosure includes any combination of two, three, four or more features or elements set forth in the present disclosure, whether or not such features or elements are explicitly combined or otherwise stated in the specific exemplary implementations described herein. The present disclosure is intended to be read as a whole, so that any separable features or elements of the present disclosure should be considered combinable in any of its aspects and exemplary implementations, unless the context of the present disclosure clearly provides otherwise.

[0020] Therefore, it should be understood that the above content is provided only for the purpose of summarizing some exemplary implementations in order to provide a basic understanding of some aspects of the present disclosure. Therefore, it should be understood that the above example implementations are only examples and should not be interpreted as narrowing the scope or spirit of the present disclosure in any way. Other exemplary embodiments, aspects and advantages will become apparent through the following detailed description in conjunction with the accompanying drawings, which illustrate the principles of some of the exemplary embodiments. BRIEF DESCRIPTION OF THE DRAWINGS

[0021] Having described exemplary implementations of the present disclosure in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and in which:

[0022] Figure 1 A pool cleaning system for a swimming pool according to some embodiments of the present disclosure is shown;

[0023] Figure 2 A swimming pool cleaning system according to some embodiments of the present disclosure is shown;

[0024] Figure 3 A computing device showing a pool cleaning system according to some embodiments of the present disclosure; and

[0025] Figure 4 A method for controlling a pool cleaning robot according to some embodiments of the present disclosure is shown. DETAILED DESCRIPTION

[0026] Some embodiments of the present disclosure will now be described more fully below with reference to the accompanying drawings, in which some but not all embodiments of the present disclosure are shown. In fact, various embodiments of the present disclosure can be implemented in a variety of different forms and should not be construed as limited to the embodiments set forth herein; on the contrary, these exemplary embodiments are provided to make the present disclosure thorough and complete and to fully convey the scope of the present disclosure to those skilled in the art. For example, unless otherwise stated, reference to first, second, etc. should not be construed as implying a particular order. The same reference numerals always refer to the same elements.

[0027] The system is primarily described in the context of a pool cleaning system, but it should be understood that the system is also applicable to some robotic lawn mowing systems, snow removal systems, and indoor robotic vacuuming systems.

[0028] Figure 1A pool cleaning system 100 for a pool 101 according to some embodiments of the present disclosure is shown. As shown, the pool cleaning system 100 includes a video capture device 102, a computing device 103, and a pool cleaning robot 104. The video capture device 102 is spatially separated from the pool cleaning robot 104. In other words, the video capture device 102 is not physically located on the pool cleaning robot 104.

[0029] In some embodiments, video capture device 102 can send one or more videos of pool 101 to computing device 103. In some examples, video capture device 102 can capture videos of pool 101 and communicate with computing device 103 via technology such as WiFi or Bluetooth technology. Video capture device 102 can be an electronic device including a camera and a wireless transmitter and / or receiver. In some embodiments, such as Figure 1 As shown, the computing device 103 includes the video capture device 102, or the video capture device 102 is located on the computing device 103. In some other embodiments, the computing device 103 is separate from the video capture device 102 and can communicate with the video capture device 102 through wireless or wired communication.

[0030] In some embodiments, computing device 103 may use one or more videos received from video capture device 102 to determine the position of pool cleaning robot 104 relative to pool 101. Computing device 103 may generate movement instructions for pool cleaning robot 104 based on the position of pool cleaning robot 104. In some examples, the movement instructions may instruct pool cleaning robot 104 to move to a specific or desired location of pool 101 in different directions.

[0031] In some embodiments, the one or more videos transmitted from the video capture device 102 to the computing device 103 include a first video and a second video that are different from each other. The first video can be a real-time video of the swimming pool 101, and the second video can be a previously recorded video. The computing device 103 can use the first video to create a coordinate system for the swimming pool 101, and use the second video and determine the position of the pool cleaning robot 104 relative to the swimming pool 101 based on the coordinate system. Details will be described below with respect to Figure 2 Described in.

[0032] In some embodiments, computing device 103 may use a video (e.g., a real-time video of pool 101) to create a coordinate system for pool 101 and use the same video to determine the position of pool cleaning robot 104 relative to pool 101 based on the coordinate system. Details will be described below. Figure 2 describe.

[0033] In some embodiments, the computing device 103 may continuously receive data from the video capture device 102 and determine the location of the pool cleaning robot 104 , and automatically generate movement instructions for the pool cleaning robot 104 based on the continuously received data.

[0034] In some embodiments, the pool cleaning robot 104 includes a marker 109, such as a lighting device or an identification light. The video capture device 102 is configured to track the position of the pool cleaning robot 104 based on the marker 109. For example, when the distance between the video capture device 102 and the pool cleaning robot 104 is far or it is dark at night, the video capture device 102 can track the position of the pool cleaning robot 104 by tracking the marker 109.

[0035] In some embodiments, computing device 103 is separate from pool cleaning robot 104. In some embodiments, pool cleaning system 100 also includes secondary computing device 105, which may be a server in a cloud computing system. Secondary computing device 105 may perform at least some of the functions of computing device 103, as described below with respect to Figure 2 described.

[0036] In some embodiments, the computing device 103 may be a base station and located near the swimming pool 101, such as Figure 1 As shown. Video capture device 102 is located on computing device 103. In some examples, video capture device 102 can send one or more videos to computing device 103. In some examples, video capture device 102 can send one or more videos to secondary computing device 105 through computing device 103. Computing device 103 may include a WiFi or Bluetooth transmitter and / or receiver and may communicate with secondary computing device 105.

[0037] In some embodiments, Figure 1 As shown, the computing device 103 is connected to a floating wireless charger 106 for charging the pool cleaning robot 104. The pool cleaning robot 104 may include a receiving charger 107 and may move to the floating wireless charger 106 for charging, such as Figure 1 The floating wireless charger 106 can be part of the pool cleaning system 100 .

[0038] In some embodiments, secondary computing device 105 may generate movement instructions and send them to computing device 103, and computing device 103 may forward the movement instructions to pool cleaning robot 104. Computing device 103 may communicate with pool cleaning robot 104 via floating antenna 108, which may be connected to pool cleaning robot 104 using technologies such as WiFi, Bluetooth, or ZigBee. Figure 1The floating antenna 108 may be part of the pool cleaning system 100 .

[0039] In some embodiments, the pool cleaning system 100 may further include a user device 110, such as a mobile device or a mobile phone. The user device 110 may be installed with an application (App). The user may control the pool cleaning robot 104 through the App on the user device 110. For example, Figure 1 As shown, the user can use the App to communicate with the secondary computing device 105 and request the secondary computing device 105 to generate the user's desired movement instructions for the pool cleaning robot 104. The user's desired movement instructions can guide the pool cleaning robot 104 to move to a specific location or clean a specific area or approach the floating wireless charger 106 for charging. The application on the user device 110 can also communicate directly with the floating antenna 108 to guide the pool cleaning robot 104.

[0040] In some embodiments, the pool cleaning robot 104 does not need to have any laser sensors, ultrasonic sensors, or underwater vision sensors due to the use of the video capture device 102. The pool cleaning robot 104 may not have any sensors for distance measurement.

[0041] Figure 2 A pool cleaning system 200 is shown according to some embodiments of the present disclosure. Pool cleaning system 200 may correspond to pool cleaning system 100, with some components, such as secondary computing device 105 and user device 110, omitted for simplicity of illustration.

[0042] like Figure 2 As shown, the pool cleaning system 200 includes a video capture device 102 and a pool cleaning robot 104, which are described above. Figure 1 The pool cleaning system 200 also includes a processing system 210. In some examples, the processing system 210 can be implemented by the computing device 103, as described above in Figure 1 In some examples, such as reference Figure 3 In more detail, the processing system 210 may be implemented by the computing device 300 .

[0043] The processing system 210 includes any one of a number of different subsystems (each of which is a separate system) for performing one or more functions or operations. As shown, in some examples, the processing system 210 includes one or more of an enhancement module 201, a segmentation module 202, a positioning module 203, and a path planning module 204. The subsystems can be located in the same place or directly connected to each other, or in some examples, multiple subsystems can communicate with each other through one or more computer networks. In addition, although shown as part of the system, it should be understood that any one or more of the enhancement module 201, the segmentation module 202, the positioning module 203, and the path planning module 204 can be operated or operated as an independent system without regard to any other subsystem. It should also be understood that the system may include additional subsystems. Figure 2 One or more additional or alternative subsystems than those shown.

[0044] In some examples, enhancement module 201 can receive one or more videos from video capture device 102. Enhancement module 201 can make adjustments and enhancements, such as noise reduction, color correction, and image stabilization, to improve the quality and / or accuracy of the received video. As will be appreciated by those skilled in the art, enhancement module 201 can make adjustments and enhancements to the received video using algorithms such as white balance, gamma correction, sharpening, motion stabilization, and filtering algorithms.

[0045] In some examples, the segmentation module 202 may receive one or more videos that have been adjusted and enhanced from the enhancement module 201. The segmentation module 202 may create a coordinate system for the swimming pool using the received videos. The segmentation module 202 may perform a video / image recognition and segmentation algorithm to generate a segmented working area that includes the swimming pool and eliminates external and non-working area portions. The coordinate system may be created by the following process:

[0046] Image acquisition and preprocessing:

[0047] First, obtain the working area video through the video capture device. According to the needs, pre-process the video by adjusting the video size, cropping or enhancing the video to improve the video quality and reduce the noise.

[0048] Threshold segmentation:

[0049] Apply thresholding to segment the image into foreground (working area) and background (outliers). This can be done by using a simple global thresholding technique such as Otsu's method or adaptive thresholding if lighting conditions change.

[0050] Connected Region Analysis:

[0051] Identify connected regions in a binary image. These connected regions correspond to regions of interest, which may include the working area and any objects within it.

[0052] Filter external areas:

[0053] Define the criteria that distinguishes the working area from the outside area. This may involve size, shape, or location-based criteria. Filter the outside area by filtering out connected areas that do not meet the criteria.

[0054] Bounding box or contour detection:

[0055] Determine a bounding box or contour representing the remaining connected region of the working area.

[0056] Generate coordinate system:

[0057] A coordinate system is established for the work area. The origin (0,0) can be set to a known reference point within the work area. The (X and Y) axes are defined based on the orientation of the work area.

[0058] The segmentation module 202 may implement video / image recognition and segmentation algorithms such as convolutional neural networks (CNNs), semantic segmentation, and graph-based segmentation as understood by those skilled in the art.

[0059] In some examples, the positioning module 203 can receive a coordinate system of the working area including the swimming pool from the segmentation module 202. The positioning module 203 can use the received video and determine the position of the pool cleaning robot 104 relative to the swimming pool based on the coordinate system.

[0060] In one example, the positioning module 203 may use the same one or more videos as the one or more videos sent from the video capture device 102 to the enhancement module 201 to determine the position of the pool cleaning robot 104 relative to the pool. In another example, the positioning module 203 may use one or more different videos to determine the position of the pool cleaning robot 104 relative to the pool. Figure 2 As shown, the positioning module 203 can use one or more videos sent directly from the video capture device 102 to the positioning module 203 to determine the position of the pool cleaning robot 104 relative to the pool.

[0061] In some examples, the positioning module 203 can use some object positioning and real-time tracking algorithms, such as Look Once (YOLO), Simple Online Real-time Tracking (SORT), and Fast Regional CNN algorithms as understood by those skilled in the art, to determine the position of the pool cleaning robot 104 relative to the pool or the coordinates of the pool cleaning robot 104 in the coordinate system. Similarly, the positioning module 203 can also determine the coordinates of the working area including the pool in the coordinate system.

[0062] In some examples, the path planning module 204 may receive the coordinates of the working area in the coordinate system and the coordinates of the pool cleaning robot 104 in the coordinate system from the positioning module 203. The path planning module 204 may generate movement instructions for the pool cleaning robot 104 based on the position or coordinates of the pool cleaning robot. As understood by those skilled in the art, the path planning module 204 may generate movement instructions using algorithms such as simultaneous localization and mapping (SLAM) and rapidly exploring random trees (RRT).

[0063] In some examples, the path planning module 204 can send movement instructions to the pool cleaning robot 104 to instruct the pool cleaning robot 104 to move in different directions to a specific or desired location in the pool.

[0064] According to exemplary implementations of the present disclosure, the processing system 210 and its subsystems including the enhancement module 201, the segmentation module 202, the positioning module 203 and the path planning module 204 can be implemented in various ways. The means for implementing the system and its subsystems may include hardware, alone or under the instructions of one or more computer programs from a computer-readable storage medium. In some examples, one or more devices may be configured to act as or otherwise implement the system and its subsystems shown and described herein. In examples involving more than one device, the various devices can be connected or communicated with each other in a variety of different ways, such as directly or indirectly connected or communicated via a wired or wireless network.

[0065] In some examples, one or more of the enhancement module 201, the segmentation module 202, the positioning module 203, and the path planning module 204 may be implemented by the secondary computing device 105. For example, the enhancement module 201 may be implemented by the computing device 103. The enhanced video data may be sent by the computing device 103 to the secondary computing device 105. The secondary computing device 105 may receive the data and implement the segmentation module 202 and the positioning module 203. Then, the secondary computing device 105 may generate a real-time coordinate system of the swimming pool 101 and a real-time coordinate system of the pool cleaning robot 104, and send them to the computing device 103. The computing device 103 may receive the data and implement the path planning module 204 to generate a moving direction. The moving direction is sent to the pool cleaning robot 104 via the floating antenna 108.

[0066] Figure 3 300 is a computing device of a pool cleaning system according to some embodiments of the present disclosure. The pool cleaning system may be the pool cleaning system 100 or the pool cleaning system 200, as described above. Figure 1 and Figure 2 The computing device 300 may correspond to the computing device 103, as described above in Figure 1The computing device 300 may implement the processing system 210 as described above in Figure 2 As described in.

[0067] like Figure 3 As shown, in some embodiments, computing device 300 includes a processor 301 and a memory 302 coupled to processor 301. In some examples, processor 301 itself may include memory 302.

[0068] In some examples, processor 301 may be a microprocessor or microcontroller unit (MCU). Processor 301 may be composed of one or more processors alone or in combination with one or more memories. A processor is typically any computer hardware capable of processing information (e.g., data, computer programs, and / or other suitable electronic information). A processor consists of a collection of electronic circuits, some of which may be packaged as an integrated circuit or multiple interconnected integrated circuits (integrated circuits are sometimes more commonly referred to as "chips"). The processor may be configured to execute a computer program, which may be stored on the processor or otherwise stored in memory 302 (of the same or another device).

[0069] Processor 301 may be a number of processors, a multi-core processor, or some other type of processor, depending on the specific implementation. In addition, the processor may be implemented using a plurality of different types of processor systems, wherein a main processor and one or more secondary processors are located on a single chip. Although the processor may be capable of executing a computer program to perform one or more functions, the processors of various examples may be capable of performing one or more functions without the aid of a computer program. In either case, the processor may be appropriately programmed to perform functions or operations according to exemplary implementations of the present disclosure.

[0070] In some examples, memory 302 can be a computer-readable storage medium. A computer-readable storage medium is a non-temporary device capable of storing information and is different from a computer-readable transmission medium (e.g., an electronic temporary signal capable of transmitting information from one location to another). Memory 302 is typically any computer hardware capable of temporarily and / or permanently storing information such as data, computer programs (e.g., computer-readable program code instructions 303), and / or other appropriate information. Memory can include volatile and / or non-volatile memory and can be fixed or removable. Examples of suitable memory include random access memory (RAM), read-only memory (ROM), hard drive, flash memory, thumb drive, removable computer disk, optical disk, magnetic tape, or some combination thereof.

[0071] In some embodiments, the memory 302 stores computer-readable program code instructions 303. The processor 301 is configured to execute the computer-readable program code instructions 303 stored in the memory 302. The execution of the program code instructions can produce a computer-implemented process, so that the instructions executed by the computer, processor or other programmable device provide operations for implementing the functions described herein. The processor executes the instructions or stores the instructions in a computer-readable storage medium, supporting a combination of operations for performing the specific functions described herein. It should also be understood that one or more functions and combinations of functions can be implemented by a computer system based on special-purpose hardware and / or a processor that performs a specific function or a combination of special-purpose hardware and program code instructions.

[0072] In some embodiments, processor 301 is configured to execute computer-readable program code instructions 303 stored in memory 302 such that computing device 300 can determine a position of a pool cleaning robot relative to a pool using one or more videos transmitted from a video capture device to computing device 300. Computing device 300 can also generate movement instructions for the pool cleaning robot based on the position of the pool cleaning robot, wherein the pool cleaning robot is separated from the video capture device and computing device 300 is separated from the video capture device.

[0073] In addition to the memory 302, the processor 301 can also be connected to one or more interfaces for displaying, sending and / or receiving information. The interface may include a communication interface (e.g., a communication unit) and / or one or more user interfaces. The communication interface may be configured to send and / or receive information to and / or from other devices, networks, etc. The communication interface may be configured to send and / or receive information via a physical (wired) and / or wireless communication link. Examples of suitable communication interfaces include a network interface controller (NIC), a wireless NIC (WNIC), etc.

[0074] Figure 4 A method 400 for controlling a pool cleaning robot according to some embodiments of the present disclosure is shown. The pool cleaning robot may be the pool cleaning robot 104, as described above in Figure 1 and Figure 2 Method 400 may be implemented by a computing device, which may be computing device 103 or computing device 300, as described above in Figure 1 and 3 As shown in the figure, at box 401, the method includes: using one or more videos sent from a video capture device to a computing device to determine the position of a pool cleaning robot relative to a pool. At box 402, the method includes: generating movement instructions for the pool cleaning robot based on the position of the pool cleaning robot, wherein the pool cleaning robot is separated from the video capture device.

[0075] Benefiting from the teachings proposed in the foregoing description and the related drawings, those skilled in the art to which the present disclosure belongs will think of many modifications and other embodiments of the present disclosure. Therefore, it should be understood that the present disclosure is not limited to the specific embodiments disclosed, and modifications and other embodiments are intended to be included within the scope of the appended claims. In addition, although the foregoing description and the associated drawings describe exemplary implementations in the context of specific example combinations of elements and / or functions, it should be understood that alternative implementations can provide different combinations of elements and / or functions without departing from the scope of the appended claims. In this regard, for example, a combination of elements and / or functions different from the elements and / or functions explicitly described above is also contemplated, as described in some of the appended claims. Although specific terms are used herein, they are only used for general and descriptive meanings, not for limiting purposes.

Claims

1. A system comprising: Video capture equipment; a pool cleaning robot separate from the video capture device; and a computing device, wherein the video capture device is configured to send one or more videos of the swimming pool to the computing device, The computing device includes a memory and a processor, and the memory stores executable instructions, and the executable instructions, in response to the execution of the processor, enable the computing device to at least: using the one or more videos to determine a position of the pool cleaning robot relative to the pool; and Based on the position of the pool cleaning robot, movement instructions for the pool cleaning robot are generated.

2. The system according to claim 1, wherein: The one or more videos include a first video and a second video.

3. The system according to claim 2, wherein: Causing the computing device to determine the location of the pool cleaning robot includes: creating a coordinate system for the swimming pool using the first video; and The position of the pool cleaning robot relative to the pool is determined using the second video and based on the coordinate system.

4. The system according to claim 1, wherein: The computing device is separate from the pool cleaning robot.

5. The system according to claim 1, wherein: The pool cleaning robot includes a marker, and the video capture device is configured to track the position of the pool cleaning robot based on the marker.

6. The system according to claim 1, wherein: The computing device is connected to a floating wireless charger for charging the pool cleaning robot.

7. The system according to claim 1, wherein: The computing device is separate from the video capture device.

8. The system according to claim 1, wherein: The computing device includes the video capture device.

9. The system according to claim 1, wherein: The system also includes a secondary computing device that acts as a server in a cloud computing system.

10. A computing device comprising a memory and a processor, wherein: The memory stores executable instructions, which, in response to execution by the processor, cause the computing device to at least: determining a position of the pool cleaning robot relative to the pool using one or more videos sent from the video capture device to the computing device; and Movement instructions for the pool cleaning robot are generated based on the position of the pool cleaning robot, wherein the pool cleaning robot is separated from the video capture device.

11. The computing device of claim 10, wherein: The one or more videos include a first video and a second video.

12. The computing device of claim 11, wherein: Causing the computing device to determine the location of the pool cleaning robot includes: creating a coordinate system for the swimming pool using the first video; and The position of the pool cleaning robot relative to the pool is determined using the second video and based on the coordinate system.

13. The computing device of claim 10, wherein: The computing device is separate from the pool cleaning robot.

14. The computing device of claim 10, wherein: The computing device is connected to a floating wireless charger for charging the pool cleaning robot.

15. The computing device of claim 10, wherein: The computing device is separate from the video capture device.

16. The computing device of claim 10, wherein: The computing device includes the video capture device.

17. A method implemented by a computing device, comprising: using the one or more videos sent from the video capture device to the computing device to determine a position of the pool cleaning robot relative to the pool; and Generating movement instructions for the pool cleaning robot based on the position of the pool cleaning robot, wherein: The pool cleaning robot is separated from the video capturing device.