Path planning methods, systems and cleaning robots
By using rasterized pool environment images and heuristic search to plan paths, combined with differential drive models and sensor data fusion, the problem of insufficient cleaning coverage and path repetition of pool cleaning robots in complex environments has been solved, achieving efficient and full-coverage cleaning results.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-09-01
- Publication Date
- 2026-04-03
AI Technical Summary
Existing pool cleaning robots suffer from insufficient cleaning coverage, repetitive paths, and a lack of adaptability when facing pools with different shapes and obstacles.
By using rasterized images of the pool environment, uncleaned areas are identified. A heuristic search method is used to plan the shortest path. Combined with a differential drive model and sensor data fusion, the cleaning robot is controlled to move along the target path and its motion trajectory is calibrated to cover all uncleaned areas.
It significantly reduces cleaning time, increases coverage, adapts to various complex pool environments, and avoids repeated cleaning and missed areas.
Smart Images

Figure CN121028842B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of path planning technology, and in particular to a path planning method, system and cleaning robot. Background Technology
[0002] With advancements in technology, robots are being applied in various settings to reduce labor costs. Currently, pool cleaning robots are widely used in swimming pools, spas, and other similar locations to automatically clean dirt and debris from the pool bottom and walls. Pool cleaning robots typically employ simple straight-line or spiral paths as their cleaning routes. This approach can easily lead to uncertainty in the cleaning path and repetitive coverage, resulting in some areas being cleaned multiple times while others are missed. Furthermore, different pools have diverse shapes (rectangular, circular, irregular, etc.) and may contain steps, obstacles, and other structural features. Traditional pool cleaning robots lack the ability to adaptively adjust to pool shapes and obstacles, leading to insufficient cleaning coverage, repetitive paths, and a lack of adaptability when encountering complex pool shapes. Summary of the Invention
[0003] This application provides a path planning method, system, and cleaning robot to at least solve the above-mentioned technical problems existing in the prior art.
[0004] The first aspect of this application provides a path planning method.
[0005] The acquired pool environment image is rasterized to obtain a raster map; each grid in the raster map has attribute information; the attribute information includes at least one of the following: obstacles, cleaned areas, uncleaned areas, and boundaries;
[0006] Based on the attribute information of each grid in the grid map, identify the set of uncleaned areas to be cleaned;
[0007] Starting from the current position of the cleaning robot, and with the goal of covering all uncleaned areas and minimizing the total path length, a heuristic search method is used to search the grid map to determine the target planned path of the cleaning robot for the set of uncleaned areas.
[0008] Based on the target planning path and the preset differential drive model in the cleaning robot, the motion controller generates walking control commands to drive the drive wheels; the differential drive model represents the conversion relationship between the linear velocity, angular velocity and rotational speed of the left and right drive wheels of the cleaning robot.
[0009] The cleaning robot is controlled to move based on the walking control command, and its movement trajectory is calibrated during the movement of the cleaning robot so that it tracks the target planned path.
[0010] In one possible implementation, the objective function, starting from the current position of the cleaning robot, and aiming to cover all uncleaned areas while minimizing the total path length, includes:
[0011]
[0012] Where x, y are the horizontal and vertical coordinates of the grid nodes in the pool; S(s, y) represents the cleanliness status of each grid node; L is the path length; d(p i ,p i+1 For cleaning robots, start from grid node p i to p i+1 The Euclidean distance; i is the current grid node; n is the number of grid nodes.
[0013] In one possible implementation, the heuristic function of the heuristic search method is:
[0014] f(n) = g(n) + h(n)
[0015] h(n)=∣x goal -x n |+|y goal -y n |
[0016] g(n) = |x n -x0∣+∣y n -y0∣
[0017] Where f(n) is the heuristic value; g(n) is the actual path cost from the starting point to the current grid node n; h(n) is the heuristic estimate, the predicted cost from the current grid node to the target grid node; x g0al x is the x-coordinate of the target grid node; n x is the x-coordinate of grid node n; x0 is the x-coordinate from the starting point; y goal y is the ordinate of the target grid node; n y0 is the ordinate of grid node n; y0 is the ordinate from the starting point.
[0018] In one possible implementation, the step of using a heuristic search method to search the grid map and determine the target planned path for the cleaning robot to the set of uncleaned areas includes:
[0019] Calculate heuristic values from the current grid node to all its reachable neighboring uncleaned areas using heuristic functions;
[0020] Sort all the obtained heuristic values to obtain the target heuristic value; the target heuristic value is the minimum heuristic value among all the heuristic values.
[0021] The next path node is determined based on the target heuristic value;
[0022] Mark the current grid node as covered and move to the next path node;
[0023] Repeat the above steps until all uncleaned areas are marked as covered or have no reachable grid nodes, thus obtaining the target planned path for the cleaning robot on the set of uncleaned areas.
[0024] In one possible implementation, the kinematic equations of the differential drive model are:
[0025]
[0026] Where x˙ is the lateral movement distance of the cleaning robot; y˙ is the longitudinal movement distance of the cleaning robot; θ˙ is the pose of the cleaning robot; vr is the speed of the left wheel of the cleaning robot; vl is the speed of the right wheel of the cleaning robot; L1 is the wheelbase; and v is the linear velocity of the center point of the cleaning robot.
[0027] In one possible implementation, calibrating the motion trajectory of the cleaning robot during its movement to make it track the target planned path includes:
[0028] The odometer information of the drive wheel is obtained by the wheel encoder, and the rotation information is obtained by the gyroscope sensor. The first pose estimate is calculated by the differential drive model.
[0029] The feature information of the surrounding environment is detected by ultrasonic sensors and / or lidar sensors and matched with the grid map to obtain a second pose estimate;
[0030] The first pose estimate and the second pose estimate are fused to obtain the actual pose of the cleaning robot;
[0031] Calculate the lateral and orientation deviations between the actual pose and the desired pose; the desired pose is the desired pose of the target planned path.
[0032] Based on the lateral deviation and orientation deviation, calculate the corrective linear velocity compensation value and angular velocity compensation value;
[0033] The linear velocity compensation value and angular velocity compensation value are superimposed on the walking control command to generate the corrected walking control command.
[0034] In one possible implementation, the cleaning robot further includes a path tracking controller;
[0035] The path tracking controller is used to calculate corrective linear velocity compensation values and angular velocity compensation values based on the lateral deviation and orientation deviation.
[0036] A second aspect of this application provides a path planning system, wherein the path planning method is applied to a cleaning robot; the cleaning robot includes a gyroscope sensor for pose estimation, an ultrasonic sensor / infrared radar sensor for detecting environmental information, a wheel encoder for calculating travel distance, and drive wheels; the system includes:
[0037] The acquisition module is used to rasterize the acquired pool environment image to obtain a raster map; each grid in the raster map has attribute information; the attribute information includes at least one of the following: obstacles, cleaned areas, uncleaned areas, and boundaries;
[0038] The identification module is used to identify a set of uncleaned areas to be cleaned based on the attribute information of each grid in the grid map.
[0039] The search module is used to search the grid map using a heuristic search method, starting from the current position of the cleaning robot, with the goal of covering all uncleaned areas and minimizing the total path length, to determine the target planned path of the cleaning robot for the set of uncleaned areas.
[0040] The generation module is used to generate walking control commands for driving the drive wheels based on the target planned path and the preset differential drive model in the cleaning robot; the differential drive model represents the conversion relationship between the linear velocity, angular velocity and rotational speed of the left and right drive wheels of the cleaning robot.
[0041] The drive module is used to control the movement of the cleaning robot based on the walking control command, and to calibrate the movement trajectory of the cleaning robot during the movement of the cleaning robot so that it tracks the target planned path.
[0042] A third aspect of this application provides a cleaning robot, comprising:
[0043] At least one processor;
[0044] and a memory communicatively connected to the at least one processor; wherein,
[0045] The memory stores instructions that can be executed by the at least one processor to enable the at least one processor to perform the method described in this application.
[0046] In one possible implementation, the cleaning robot further includes:
[0047] Gyroscope sensors, wheel encoders, and ultrasonic / infrared radar sensors;
[0048] The gyroscope sensor, wheel encoder, and ultrasonic sensor / infrared radar sensor are respectively connected to the processor.
[0049] A fourth aspect of this application provides a non-transitory computer-readable storage medium storing computer instructions for causing the computer to perform the methods described in this application.
[0050] The path planning method, system, and cleaning robot of this application can significantly reduce cleaning time, increase coverage, and adapt to various complex pool environments, effectively avoiding repeated cleaning and missed cleaning of the pool.
[0051] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of this application, nor is it intended to limit the scope of this application. Other features of this application will become readily apparent from the following description. Attached Figure Description
[0052] The above and other objects, features, and advantages of exemplary embodiments of this application will become readily apparent from the following detailed description taken in conjunction with the accompanying drawings. Several embodiments of this application are illustrated in the drawings by way of example and not limitation, in which:
[0053] In the accompanying drawings, the same or corresponding reference numerals indicate the same or corresponding parts.
[0054] Figure 1 A schematic diagram of the structure of the cleaning robot according to an embodiment of this application is shown;
[0055] Figure 2 A flowchart illustrating the path planning method according to an embodiment of this application is shown;
[0056] Figure 3 A schematic diagram of the path planning system according to an embodiment of this application is shown;
[0057] Figure 4 A schematic diagram of the composition structure of a cleaning robot according to an embodiment of this application is shown. Detailed Implementation
[0058] To make the objectives, features, and advantages of this application more apparent and understandable, the technical solutions in the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0059] The following description, in conjunction with the accompanying drawings, introduces a path planning method, system, and cleaning robot provided in this application.
[0060] like Figure 1 As shown, this application provides a path planning method applied to a cleaning robot; the cleaning robot includes a gyroscope sensor, a wheel encoder, and an ultrasonic sensor / infrared radar sensor; the gyroscope sensor, wheel encoder, and ultrasonic sensor / infrared radar sensor are respectively connected to a processor.
[0061] The cleaning robot provided in this application is mainly used for swimming pool cleaning. The cleaning robot is equipped with a gyroscope sensor, a wheel encoder, and an ultrasonic / infrared radar sensor, all of which are connected to a processor. Specifically, the gyroscope sensor acquires pose information, and the wheel encoder detects odometer information. The built-in gyroscope sensor provides the robot's attitude and heading information, helping it understand its own direction and stabilize its trajectory. The wheel encoder estimates the travel distance, thus roughly estimating its position in the pool. The ultrasonic / infrared radar sensor detects the surrounding environment, such as the distance to the pool wall, corners, or ladders, used to determine boundary locations and detect obstacles. This application uses the gyroscope sensor and ultrasonic / infrared radar sensor to obtain preliminary information about the current cleaning environment, providing a data foundation for subsequent path planning.
[0062] The path planning method provided in this application can be implemented using a motion controller. For example... Figure 2 As shown, the method includes:
[0063] S101, the acquired pool environment image is rasterized to obtain a raster map; each grid in the raster map has attribute information; the attribute information includes at least one of the following: obstacles, cleaned areas, uncleaned areas, and boundaries;
[0064] This application uses a camera to capture images of the swimming pool environment, obtaining an image of the pool environment. The image is then rasterized using a gridding method to create a grid map. Specifically, for regularly shaped pools (such as rectangular or circular pools), parameters such as the pool's length, width, or diameter can be determined based on the distance and direction information detected by ultrasonic / infrared radar sensors and gyroscope sensors. For irregularly shaped pools, the pool space can be divided into a grid or mesh map, and the boundary and obstacle information detected by the sensors can be mapped onto the grid to form a grid map representing the area to be cleaned. This method visualizes the extent and shape of the cleanable area. The grid map can also mark the locations of fixed obstacles and the pool boundaries.
[0065] For example, the grid map in this application can be represented by G(x,y). x represents the horizontal coordinate of a grid node in the pool, and y represents the vertical coordinate of a grid node in the pool. The attribute information of each grid can be represented using state values. For example, the state S(x,y) of each grid node has a value of 0 indicating unclean, 1 indicating clean, and -1 indicating an obstacle.
[0066] S102, Based on the attribute information of each grid in the grid map, identify the set of uncleaned areas to be cleaned;
[0067] Specifically, to avoid the cleaning robot repeatedly cleaning already cleaned areas of the pool, this application identifies the set of uncleaned areas of the pool based on the attribute information of each grid. Based on the state value of each grid in the grid map, it can be determined whether the grid node is a cleaned area, an uncleaned area, or an obstacle area, thus obtaining the set of uncleaned areas.
[0068] S103, Starting from the current position of the cleaning robot, with the goal of covering all uncleaned areas and minimizing the total path length, a heuristic search method is used to search the grid map to determine the target planning path of the cleaning robot for the set of uncleaned areas;
[0069] In this application, to achieve full coverage cleaning of uncleaned areas and minimize the cleaning path, an objective function is constructed, starting from the current position of the cleaning robot and aiming to cover all uncleaned areas while minimizing the total path length. Based on this objective function, a heuristic search method is used to search the grid map to determine the target planned path for the cleaning robot on the set of uncleaned areas.
[0070] The objective function is:
[0071]
[0072] Where x, y are the horizontal and vertical coordinates of the grid nodes in the pool; S(x, y) represents the cleanliness status of each grid node; L is the path length; d(p i ,p i+1 For cleaning robots, start from grid node p i to p i+1 The Euclidean distance; i is the current grid node; n is the number of grid nodes.
[0073] In this application, the planned path obtained through the objective function not only ensures that the cleaning robot does not miss any areas, guaranteeing the reliability of the cleaning effect, but also, in some implementations, incorporates energy consumption and motion smoothness in addition to considering coverage and path length, thereby improving cleaning efficiency and operational stability.
[0074] The heuristic function of the heuristic search method in this application is:
[0075] f(n) = g(n) + h(n)
[0076] h(n)=∣x goal -x n |+|y goal -y n |
[0077] g(n) = |x n -x0∣+∣y n -y0∣
[0078] Where f(n) is the heuristic value; g(n) is the actual path cost from the starting point to the current grid node n; h(n) is the heuristic estimate, the predicted cost from the current grid node to the target grid node; x goal x is the x-coordinate of the target grid node; n x is the x-coordinate of grid node n; x0 is the x-coordinate from the starting point; y goal y is the ordinate of the target grid node; n y0 is the ordinate of grid node n; y0 is the ordinate from the starting point.
[0079] In some embodiments, the use of a heuristic search method to search the grid map and determine the target planned path for the cleaning robot to the set of uncleaned areas includes:
[0080] Calculate heuristic values from the current grid node to all its reachable neighboring uncleaned areas using heuristic functions;
[0081] Sort all the obtained heuristic values to obtain the target heuristic value; the target heuristic value is the minimum heuristic value among all the heuristic values.
[0082] The next path node is determined based on the target heuristic value;
[0083] Mark the current grid node as covered and move to the next path node;
[0084] Repeat the above steps until all uncleaned areas are marked as covered or have no reachable grid nodes, thus obtaining the target planned path for the cleaning robot on the set of uncleaned areas.
[0085] This application uses a heuristic function to calculate heuristic values from the current grid node to all its reachable adjacent uncleaned areas. The minimum heuristic value among all heuristic values is taken as the target heuristic value, and the grid node corresponding to the target heuristic value is taken as the next path node. The current grid node is marked as covered, indicating that the area has been cleaned. The process then moves to the next path node. This process is repeated step by step to obtain the next path node, ultimately yielding the target planned path for cleaning the uncleaned areas.
[0086] S104, based on the target planning path and the preset differential drive model in the cleaning robot, the motion controller generates walking control commands for driving the drive wheels; the differential drive model represents the conversion relationship between the linear velocity, angular velocity and rotational speed of the left and right drive wheels of the cleaning robot.
[0087] This application accepts a target planned path, which can be a series of ordered pose points (x1, y1, θ1), (x2, y2, θ2), ... The motion controller uses a differential drive model to convert the path information into walking control commands, which can drive a motor, and the motor drives the drive wheels.
[0088] In some embodiments, to facilitate path tracking by the controller, the kinematic equations of the differential drive model are as follows:
[0089]
[0090] Where x˙ is the lateral movement distance of the cleaning robot; y˙ is the longitudinal movement distance of the cleaning robot; θ˙ is the pose of the cleaning robot; vr is the speed of the left wheel of the cleaning robot; vl is the speed of the right wheel of the cleaning robot; L1 is the wheel track; and v is the linear velocity of the center point of the cleaning robot. In practical applications, the model can be corrected through experimental calibration to adapt to different underwater friction and slip conditions.
[0091] S105, control the cleaning robot to move based on the walking control command, and calibrate the movement trajectory of the cleaning robot during the movement of the cleaning robot so that it tracks the target planned path.
[0092] In some embodiments, calibrating the motion trajectory of the cleaning robot during its movement to make it track the target planned path includes:
[0093] The odometer information of the drive wheel is obtained by the wheel encoder, and the rotation information is obtained by the gyroscope sensor. The first pose estimate is calculated by the differential drive model.
[0094] The feature information of the surrounding environment is detected by ultrasonic sensors and / or lidar sensors and matched with the grid map to obtain a second pose estimate;
[0095] The first pose estimate and the second pose estimate are fused to obtain the actual pose of the cleaning robot. The fusion can be performed using common methods such as extended Kalman filter and particle filter.
[0096] Calculate the lateral and orientation deviations between the actual pose and the desired pose; the desired pose is the desired pose of the target planned path.
[0097] Based on the lateral deviation and orientation deviation, calculate the corrective linear velocity compensation value and angular velocity compensation value;
[0098] The linear velocity compensation value and angular velocity compensation value are superimposed on the walking control command to generate the corrected walking control command.
[0099] In some embodiments, the cleaning robot also includes a path tracking controller (not shown in the figure);
[0100] The path tracking controller is used to calculate corrective linear velocity compensation values and angular velocity compensation values based on the lateral deviation and orientation deviation.
[0101] In this application, the robot pose is first calculated by integrating a wheel encoder to provide displacement increments and a gyroscope to provide precise rotation angles, thus obtaining the first pose estimate. Then, environmental features (such as wall and obstacle contours) scanned in real-time are matched with a pre-stored grid map using ultrasonic or lidar sensors to directly calculate the robot's absolute pose on the map, resulting in the second pose estimate. Typically, a Kalman filter or particle filter algorithm is used to fuse the first and second pose estimates. The aim is to combine the advantages and disadvantages of both pose estimates to output a more accurate and reliable actual pose. The filter trusts the absolute accuracy of the second pose estimate to correct the accumulated error of the first pose estimate. The fused "actual pose" is compared with the "desired pose" given by path planning to obtain lateral deviation and orientation deviation. Lateral deviation represents the vertical distance of the robot's center point from the planned path. Orientation deviation represents the angle between the robot's current orientation and the tangent direction of the planned path at that point. The tracking controller calculates the linear velocity compensation and angular velocity compensation values required to eliminate these deviations based on the lateral and orientation deviations. For example, if the lateral deviation is to the right, the controller will calculate a left-turn angular velocity compensation, causing the robot to adjust to the left to return to the center of the path. Finally, the calculated compensation value is superimposed on the original walking control command to generate a corrected walking control command, which is then sent to the motor, thereby driving the cleaning robot back to the correct trajectory.
[0102] This application fuses data from multiple sensors, overcoming the limitations of a single sensor and significantly improving positioning and tracking accuracy. It effectively addresses scenarios where odometer failure is caused by wheel slippage or slippery surfaces, resulting in a more robust system.
[0103] As one implementation method, the cleaning robot in this application cleans uncleaned areas using a zoned coverage approach. For example, it first travels around the edge of a pool to clean the boundary and determine the precise extent of the pool. Then, within the pool area, it uses a parallel, reciprocating path, similar to manual sweeping, to cover each row sequentially. For rectangular pools, the path is planned as regular parallel straight lines traveling back and forth, ensuring the path spacing matches the robot's cleaning width for seamless coverage of the entire area. For circular or elliptical pools, a spiral path can be used, advancing towards the center in circles. For irregularly shaped pools or pools with multiple obstacles, the area is divided into several sub-areas for separate coverage, ensuring all sub-areas are cleaned while avoiding obstacles. The orientation of each travel path is corrected using attitude information provided by a gyroscope sensor, ensuring the robot moves along the planned straight or curved path, thereby achieving optimal coverage. During path calculation, an adaptive optimization strategy is specifically introduced: when the robot detects that a certain area is difficult to clean (e.g., dense obstacles or narrow shape), the algorithm will refine the path for that area (e.g., change to small-amplitude back-and-forth sweeping or increase the number of coverages); conversely, for wide, unobstructed areas, it maintains an efficient, large-step path. The entire path planning is optimized with the goal of maximizing coverage and minimizing repetition.
[0104] Furthermore, the path planning method provided in this application can integrate machine learning components to achieve self-optimization. In one implementation, the robot accumulates experience data by cleaning the same pool multiple times and uses machine learning methods such as reinforcement learning to continuously adjust and optimize its path planning strategy. For example, the algorithm can learn the most efficient movement pattern for a certain pool shape and in which areas are easily missed, thus making adjustments in advance for subsequent cleaning tasks. Even without machine learning, multiple cleaning patterns (such as straight lines, diagonal lines, spirals, etc.) can be preset, and the rule engine selects or switches modes based on sensor input: for example, a finer grid coverage mode is selected when many obstacles are detected in the pool, while an efficient straight-line back-and-forth mode is used when a regular rectangular pool is detected without obstacles. Regardless of the implementation method, this application ensures that the cleaning path is optimized and adjusted according to the actual situation to improve coverage and avoid unnecessary repeated cleaning.
[0105] In some embodiments, tracking the target planned path further includes:
[0106] Obstacles are detected ahead using ultrasonic or infrared radar sensors. When the distance to an obstacle is detected to be below a first preset threshold, obstacle avoidance behavior is triggered. In some implementations, a local path correction method can be used during obstacle avoidance to reduce the impact on overall coverage. After executing the obstacle avoidance behavior, the cleaning robot is controlled to continue executing the target planned path or replan the target planned path based on the current position.
[0107] After performing obstacle avoidance, the cleaning robot is controlled to continue executing the target planned path or to replan the target planned path based on the current position;
[0108] During the cleaning process, the status of cleaned and uncleaned areas based on a raster map is recorded and updated in real time.
[0109] Based on the updated status of uncleaned areas, a supplementary cleaning path is dynamically generated, and the cleaning robot is controlled to execute the supplementary cleaning path until the entire pool is fully covered.
[0110] Once the path planning is determined, the cleaning robot begins cleaning along the calculated path. During movement, gyroscope sensors continuously work to correct deviations in the robot's direction of travel, ensuring it stays on the planned route. When the robot approaches a pool wall or obstacle, ultrasonic / infrared radar sensors detect the distance in advance and trigger obstacle avoidance behavior. Obstacle avoidance strategies can include: decelerating and stopping before a collision, then turning at a small angle to bypass the obstacle based on the current orientation. For example, when a protrusion such as a step or light fixture is detected ahead, the robot can pause, back up slightly, and turn to bypass the obstacle before continuing along the original planned path or replanning a local path based on the new location to continue covering the remaining area. During obstacle avoidance, the robot marks whether the bypassed area has been cleaned. If a small area is left uncovered due to obstacle avoidance, supplementary cleaning will be scheduled later. Throughout the navigation process, the robot also makes fine adjustments based on deviations between the actual trajectory and the planned path. For example, underwater resistance may cause the trajectory to deviate, and feedback from the gyroscope sensors allows the controller to appropriately adjust the wheel speed or rudder angle to maintain the planned route. Through the above mechanism, the robot can execute the predetermined cleaning path while flexibly dealing with obstacles and interference encountered along the way, ensuring both safety and the continuity of the path coverage.
[0111] The algorithm of this invention continuously monitors the cleaning coverage during the cleaning process and dynamically adjusts the path to achieve full coverage. The robot can record its current position and the route it has traveled in its internal storage (e.g., marking cleaned grids on a previously established grid map). As cleaning progresses, the algorithm updates in real time which areas have been cleaned and which have not. If it finds that some areas have not been covered due to planning deviations or obstacle avoidance, the algorithm dynamically generates additional path segments to clean the missed areas. For example, near the end of cleaning, if the robot finds a small area in the middle of the pool bottom that has not been visited, it will adjust the cleaning robot to go to that area for supplementary cleaning. Dynamic adjustment is also used to reduce repetition: if the cleaning robot has partial path overlap due to environmental uncertainties, the algorithm can identify the overlapping areas and avoid traversing them again, thus saving time. Through the coverage monitoring mechanism, it is ensured that every part of the entire pool is ultimately cleaned. When necessary, after completing the main path, the robot can switch to a "gap-filling" mode to scan the entire area and locate and process uncleaned areas. Finally, the robot will end its cleaning task when it determines that all areas have been cleaned (for example, no uncovered grids remain on the map, or the coverage rate is inferred to be 100% by the cumulative cleaning time and trajectory length).
[0112] Once the entire pool has been cleaned, the robot completes its end-of-cycle process, such as stopping cleaning and signaling to the user. The robot can then automatically return to its starting position or the poolside. After the task is finished, the cleaning path, coverage map, and any issues encountered are saved for later analysis or machine learning optimization. By recording this data, the robot can further optimize its path planning when cleaning the same pool again, or build an experience base for pools of different shapes.
[0113] like Figure 3 As shown, this application provides a path planning system, including:
[0114] The acquisition module 301 is used to rasterize the acquired pool environment image to obtain a raster map; each grid in the raster map has attribute information; the attribute information includes at least one of the following: obstacles, cleaned areas, uncleaned areas, and boundaries;
[0115] The identification module 302 is used to identify a set of uncleaned areas to be cleaned based on the attribute information of each grid in the grid map.
[0116] The search module 303 is used to search the grid map using a heuristic search method, starting from the current position of the cleaning robot and aiming to cover all uncleaned areas with the shortest total path length, to determine the target planned path of the cleaning robot for the set of uncleaned areas.
[0117] The generation module 304 is used to generate walking control commands for driving the drive wheels based on the target planning path and the preset differential drive model in the cleaning robot; the differential drive model represents the conversion relationship between the linear velocity, angular velocity and rotational speed of the left and right drive wheels of the cleaning robot.
[0118] The drive module 305 is used to control the movement of the cleaning robot based on the walking control command, and to calibrate the movement trajectory of the cleaning robot during the movement of the cleaning robot so that it tracks the target planned path.
[0119] It should be noted that the path planning system of this application embodiment is similar in principle to the path planning method described above. Therefore, the implementation process, implementation principle, and beneficial effects of the path planning system can be found in the description of the implementation process, implementation principle, and beneficial effects of the aforementioned method. Repeated descriptions will not be repeated.
[0120] This application provides a cleaning robot, including:
[0121] At least one processor;
[0122] and a memory communicatively connected to the at least one processor; wherein,
[0123] The memory stores instructions that can be executed by the at least one processor to enable the at least one processor to perform the method described in any of the above embodiments.
[0124] This application provides a non-transitory computer-readable storage medium storing computer instructions, wherein the computer instructions are used to cause a computer to perform the methods described in any of the above embodiments.
[0125] According to embodiments of this application, this application also provides an electronic device and a readable storage medium.
[0126] Figure 4 A schematic block diagram of an example electronic device 800 that can be used to implement embodiments of this application is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device may also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the application described and / or claimed herein.
[0127] like Figure 4 As shown, the electronic device 800 includes a computing unit 801, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 802 or a computer program loaded from a storage unit 808 into a random access memory (RAM) 803. The RAM 803 may also store various programs and data required for the operation of the device 800. The computing unit 801, ROM 802, and RAM 803 are interconnected via a bus 804. An input / output (I / O) interface 805 is also connected to the bus 804.
[0128] Multiple components in device 800 are connected to I / O interface 805, including: input unit 806, such as keyboard, mouse, etc.; output unit 807, such as various types of monitors, speakers, etc.; storage unit 808, such as disk, optical disk, etc.; and communication unit 809, such as network card, modem, wireless transceiver, etc. Communication unit 809 allows device 800 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.
[0129] The computing unit 801 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 801 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 801 performs the various methods and processes described above, such as path planning methods. For example, in some embodiments, the path planning method may be implemented as a computer software program tangibly contained in a machine-readable medium, such as storage unit 808. In some embodiments, part or all of the computer program may be loaded and / or installed on device 800 via ROM 802 and / or communication unit 809. When the computer program is loaded into RAM 803 and executed by the computing unit 801, one or more steps of the path planning method described above may be performed. Alternatively, in other embodiments, the computing unit 801 may be configured to perform path planning methods by any other suitable means (e.g., by means of firmware).
[0130] Various embodiments of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), system-on-a-chip (SoCs), complex programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementations in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which may be a dedicated or general-purpose programmable processor, capable of receiving data and instructions from a storage system, at least one input device, and at least one output device, and transmitting data and instructions to the storage system, the at least one input device, and the at least one output device.
[0131] The program code used to implement the methods of this application may be written in any combination of one or more programming languages. This program code may be provided to a processor or controller of a general-purpose computer, special-purpose computer, or other programmable data processing device, such that when executed by the processor or controller, the functions / operations specified in the flowcharts and / or block diagrams are implemented. The program code may be executed entirely on a machine, partially on a machine, as a standalone software package partially on a machine and partially on a remote machine, or entirely on a remote machine or server.
[0132] In the context of this application, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. Machine-readable media can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.
[0133] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor); and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including sound input, voice input, or tactile input).
[0134] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as a data server), or computing systems that include middleware components (e.g., an application server), or computing systems that include frontend components (e.g., a user computer with a graphical user interface or web browser through which a user can interact with embodiments of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., a communication network). Examples of communication networks include local area networks (LANs), wide area networks (WANs), and the Internet.
[0135] Computer systems can include clients and servers. Clients and servers are generally located far apart and typically interact via communication networks. Client-server relationships are created by computer programs running on the respective computers and having a client-server relationship with each other. Servers can be cloud servers, servers in distributed systems, or servers incorporating blockchain technology.
[0136] It should be understood that the various forms of processes shown above can be used to rearrange, add, or delete steps. For example, the steps described in this disclosure can be executed in parallel, sequentially, or in different orders, as long as the desired result of the technical solution of this application can be achieved, and this is not limited herein.
[0137] Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one of that feature. In the description of this application, "a plurality of" means two or more, unless otherwise explicitly specified.
[0138] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A path planning method, characterized in that, The acquired pool environment image is rasterized to obtain a raster map; each grid in the raster map has attribute information; the attribute information includes at least one of the following: obstacles, cleaned areas, uncleaned areas, and boundaries; Based on the attribute information of each grid in the grid map, identify the set of uncleaned areas to be cleaned; Starting from the current position of the cleaning robot, and with the goal of covering all uncleaned areas and minimizing the total path length, a heuristic search method is used to search the grid map to determine the target planned path of the cleaning robot for the set of uncleaned areas. Based on the target planning path and the preset differential drive model in the cleaning robot, the motion controller generates walking control commands to drive the drive wheels; the differential drive model represents the conversion relationship between the linear velocity, angular velocity and rotational speed of the left and right drive wheels of the cleaning robot. The cleaning robot is controlled to move based on the walking control command, and its movement trajectory is calibrated during the movement of the cleaning robot to make it follow the target planned path. The step of calibrating the motion trajectory of the cleaning robot during its movement to ensure it tracks the target planned path includes: The odometer information of the drive wheel is obtained by the wheel encoder, and the rotation information is obtained by the gyroscope sensor. The first pose estimate is calculated by the differential drive model. The feature information of the surrounding environment is detected by ultrasonic sensors and / or lidar sensors and matched with the grid map to obtain a second pose estimate; The first pose estimate and the second pose estimate are fused to obtain the actual pose of the cleaning robot; Calculate the lateral and orientation deviations between the actual pose and the desired pose; the desired pose is the desired pose of the target planned path. The path tracking controller calculates corrective linear velocity compensation values and angular velocity compensation values based on the lateral deviation and orientation deviation. The linear velocity compensation value and angular velocity compensation value are superimposed on the walking control command to generate a corrected walking control command. The tracking of the target planned path also includes: The system detects obstacles ahead using ultrasonic or infrared radar sensors. When the distance to the detected obstacle is lower than a first preset threshold, obstacle avoidance behavior is triggered. After performing obstacle avoidance, the cleaning robot is controlled to continue executing the target planned path or to replan the target planned path based on the current position; During the cleaning process, the status of cleaned and uncleaned areas based on a raster map is recorded and updated in real time. Based on the updated status of uncleaned areas, a supplementary cleaning path is dynamically generated, and the cleaning robot is controlled to execute the supplementary cleaning path until the entire pool is fully covered.
2. The method according to claim 1, characterized in that, Starting from the current position of the cleaning robot, the objective functions that aim to cover all uncleaned areas and minimize the total path length include: in, The x and y coordinates of the grid nodes in the pool; Cleanliness status of each grid node; This represents the path length. For cleaning robots from grid nodes arrive Euclidean distance; i For the current grid node; n This represents the number of grid nodes.
3. The method according to claim 1, characterized in that, The heuristic function for heuristic search methods is: f ( n ) =g ( n ) +h ( n ) g(n) in, f ( n () is the heuristic value; g ( n () represents the distance from the starting point to the current grid node. n The actual path cost; h ( n This is a heuristic estimate, representing the projected cost from the current grid node to the target grid node; The x-coordinate of the target grid node; For grid nodes n The x-coordinate; The x-coordinate is the coordinate from the starting point; The ordinate of the target grid node; For grid nodes n The ordinate; The ordinate is the vertical coordinate from the starting point.
4. The method according to claim 3, characterized in that, The method of using a heuristic search to search the grid map and determine the target planned path for the cleaning robot to the set of uncleaned areas includes: Calculate heuristic values from the current grid node to all its reachable neighboring uncleaned areas using heuristic functions; Sort all the obtained heuristic values to obtain the target heuristic value; the target heuristic value is the minimum heuristic value among all the heuristic values. The next path node is determined based on the target heuristic value; Mark the current grid node as covered and move to the next path node; Repeat the above steps until all uncleaned areas are marked as covered or have no reachable grid nodes, thus obtaining the target planned path for the cleaning robot on the set of uncleaned areas.
5. A path planning system, characterized in that, The acquisition module is used to rasterize the acquired pool environment image to obtain a raster map; each grid in the raster map has attribute information; the attribute information includes at least one of the following: obstacles, cleaned areas, uncleaned areas, and boundaries; The identification module is used to identify a set of uncleaned areas to be cleaned based on the attribute information of each grid in the grid map. The search module is used to search the grid map using a heuristic search method, starting from the current position of the cleaning robot, with the goal of covering all uncleaned areas and minimizing the total path length, to determine the target planned path of the cleaning robot for the set of uncleaned areas. The generation module is used to generate walking control commands for driving the drive wheels based on the target planned path and the preset differential drive model in the cleaning robot; the differential drive model represents the conversion relationship between the linear velocity, angular velocity and rotational speed of the left and right drive wheels of the cleaning robot. The drive module is used to control the movement of the cleaning robot based on the walking control command, and to calibrate the movement trajectory of the cleaning robot during the movement of the cleaning robot so that it tracks the target planned path; The driver module is used for: The odometer information of the drive wheel is obtained by the wheel encoder, and the rotation information is obtained by the gyroscope sensor. The first pose estimate is calculated by the differential drive model. The feature information of the surrounding environment is detected by ultrasonic sensors and / or lidar sensors and matched with the grid map to obtain a second pose estimate; The first pose estimate and the second pose estimate are fused to obtain the actual pose of the cleaning robot; Calculate the lateral and orientation deviations between the actual pose and the desired pose; the desired pose is the desired pose of the target planned path. The path tracking controller calculates corrective linear velocity compensation values and angular velocity compensation values based on the lateral deviation and orientation deviation. The linear velocity compensation value and angular velocity compensation value are superimposed on the walking control command to generate a corrected walking control command. The drive module is also used for: The system detects obstacles ahead using ultrasonic or infrared radar sensors. When the distance to the detected obstacle is lower than a first preset threshold, obstacle avoidance behavior is triggered. After performing obstacle avoidance, the cleaning robot is controlled to continue executing the target planned path or to replan the target planned path based on the current position; During the cleaning process, the status of cleaned and uncleaned areas based on a raster map is recorded and updated in real time. Based on the updated status of uncleaned areas, a supplementary cleaning path is dynamically generated, and the cleaning robot is controlled to execute the supplementary cleaning path until the entire pool is fully covered.
6. A cleaning robot, characterized in that, include: At least one processor; and a memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor to enable the at least one processor to perform the method of any one of claims 1-4.
7. The cleaning robot according to claim 6, characterized in that, Also includes: Gyroscope sensors, wheel encoders, and ultrasonic / infrared radar sensors; The gyroscope sensor, wheel encoder, and ultrasonic sensor / infrared radar sensor are respectively connected to the processor.
Citation Information
Patent Citations
Path planning method and device for swimming pool cleaning robot
CN114895691A
Path planning and cleaning method, device and equipment for swimming pool cleaning robot
CN115822334A