Edge sweeping control method of sweeping robot and sweeping robot
By constructing a grid map in the robot vacuum's coordinate system and optimizing its travel path, the collision problem when the robot vacuum is cleaning along the edges was solved, achieving good edge cleaning results and efficient operation.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- GUANGDONG INFORE INTELLIGENT SANITATION TECH CO LTD
- Filing Date
- 2026-02-04
- Publication Date
- 2026-05-05
AI Technical Summary
Existing robotic vacuum cleaners often struggle to maintain a good edge-keeping position when cleaning along edges and are prone to colliding with obstacles, affecting cleaning performance and equipment safety.
By constructing a grid map in the robot coordinate system, expanding it based on obstacle information, finding non-obstacle grids as starting points, and constructing an optimized travel path, the robot sweeping robot is driven to move along the edge to perform cleaning operations.
It effectively avoids collisions between the robot vacuum and obstacles, maintains a good edge-keeping state, and improves cleaning effect and work efficiency.
Smart Images

Figure CN121979217A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of control technology, and more specifically, to a method for controlling edge cleaning of a sweeping robot and a sweeping robot. Background Technology
[0002] Outdoor robotic vacuum cleaners are primarily used for cleaning urban roads, parks, streets, sidewalks, and plazas. In road cleaning scenarios, trash and dirt tend to accumulate at the edges. In park and plaza cleaning scenarios, flower beds, steps, and bases of walls are also key areas to clean. Outdoor robotic vacuum cleaners should not only have the ability to cover and clean roads and plazas in general scenarios, but also the ability to clean along the edges of these areas.
[0003] The key to outdoor robotic edge cleaning lies in controlling the robot's brushes to stay close to the edge of the road or plaza. Current technologies either have issues with excessively large edge-keeping distances, making it difficult to achieve good cleaning results, or poor edge-keeping distance control, leading to collisions with curbs, buildings, etc., causing equipment damage or property loss. Furthermore, edge cleaning requires the robot to adapt to complex edge geometries such as outward curves, inward curves, inner corners, sharp outer angles, and irregular corners or edges with scattered obstacles. Such conditions often cause the robot to sway left and right or get stuck, affecting the smoothness and efficiency of its operation. Summary of the Invention
[0004] The purpose of this invention is to provide a method for controlling edge cleaning of a robotic vacuum cleaner and a robotic vacuum cleaner, so as to ensure good edge-keeping while avoiding collisions between the robotic vacuum cleaner and obstacles.
[0005] In a first aspect, the present invention provides a method for controlling edge cleaning of a sweeping robot, the method comprising: A grid map is constructed in the robot coordinate system, and the grids containing obstacles in the grid map are determined based on the obstacle information detected around the robot vacuum cleaner; An expanded grid is obtained by expanding the grid with obstacles, and the grid with obstacles and the expanded grid are defined as obstacle grids; Find the non-obstacle grid that is closest to the robot vacuum and adjacent to the obstacle grid, and use it as the starting point; Starting from the aforementioned starting point, search for multiple non-obstacle grids along the boundary between the obstacle grid and the non-obstacle grid; The robot vacuum cleaner constructs a driving path based on the found non-obstacle grid, and drives the robot to move along the edge and perform cleaning operations based on the driving path.
[0006] In an optional implementation, the step of constructing a driving path based on the found non-obstacle grid includes: Construct an initial driving path based on the found non-obstacle grid; Multiple optimization indicators are constructed, and the initial driving path is optimized based on the multiple optimization indicators and a multi-objective optimization algorithm to obtain the optimized driving path.
[0007] In an optional implementation, the step of determining the grid cells containing obstacles in the grid map based on the detected obstacle information around the robotic vacuum cleaner includes: Obtain point clouds of obstacles around the detected robotic vacuum cleaner; For each three-dimensional point in the obstacle point cloud, the grid coordinates of the three-dimensional point in the grid map are obtained based on the coordinates of the three-dimensional point in the robot coordinate system and the grid parameters of the grid map. The grid to which the three-dimensional point belongs is determined based on the grid coordinates, thereby identifying the grid with obstacles.
[0008] In an optional implementation, the step of expanding the grid based on the grid with obstacles to obtain the expanded grid includes: Obtain the dimensional information of the outer circle of the robot's body structure, and determine the expansion thickness based on the dimensional information; The expanded grid is obtained by expanding the grid around the grid with obstacles in the grid map according to the expanded thickness.
[0009] In an optional implementation, the step of expanding the grid map around the grid with obstacles according to the expansion thickness to obtain an expanded grid includes: The corresponding number of expansions is determined based on the expansion thickness. In each round of expansion, grids with obstacles or grids surrounding a identified expansion grid are converted into expansion grids; The final expanded grid is determined until the expansion corresponding to the number of expansions is completed.
[0010] In an optional implementation, the step of searching for multiple non-obstacle grids along the boundary between obstacle grids and non-obstacle grids starting from the starting point includes: Starting from the starting point, four-neighborhoods are constructed by rolling along the boundary between the obstacle grid and the non-obstacle grid in a clockwise or counterclockwise direction, and the extension direction of the constructed four-neighborhoods is determined. For each constructed four-neighborhood, locate the non-obstacle grid within the four-neighborhood that is adjacent to the obstacle grid and closest to the extension direction, in order to find multiple non-obstacle grids.
[0011] In an optional implementation, the plurality of optimization metrics include the distance deviation between the sweeping brush of the robotic vacuum cleaner and the obstacle; The distance deviation index is obtained in the following way: The location and orientation information of each point included in the initial driving path are obtained, and the relative position of the sweeping brush center of the sweeping robot with respect to the body of the sweeping robot is obtained. The coordinates of the center of the sweeping circle are determined based on the location information, orientation information, and relative position. Based on the coordinates of the center of the sweeping circle, the minimum distance between the center of the sweeping circle and the obstacle is obtained; A distance deviation index is constructed based on the minimum distance and the radius of the sweeping brush.
[0012] In an optional implementation, the plurality of optimization metrics include the distance between the robotic vacuum cleaner and the obstacle; The distance between the robotic vacuum cleaner and the obstacle is calculated from the minimum distance between the collision detection safety frame of the robotic vacuum cleaner and the obstacle, as well as the set robot safety distance.
[0013] In an optional implementation, the driving path includes multiple points and time intervals between each pair of adjacent points; The step of driving the sweeping robot to move along the edge and perform cleaning operations based on the travel path includes: Obtain the location information, orientation angle, and time interval of the two latest points in the driving path; The linear velocity control command is obtained based on the position information and time interval of the two points; The angular velocity control command is obtained based on the orientation angle and time interval of the two points; The robot vacuum cleaner is driven to move along the edge and perform cleaning operations based on the linear velocity control command and angular velocity control command.
[0014] Secondly, the present invention provides a robotic vacuum cleaner, comprising: One or more processors; Storage device for storing one or more programs; When the one or more programs are executed by the one or more processors, the one or more processors perform the method as described in any of the foregoing embodiments.
[0015] This invention provides a method for controlling edge cleaning in a robotic vacuum cleaner and a robotic vacuum cleaner itself. The method involves constructing a grid map in the robot's coordinate system and identifying grids containing obstacles based on detected obstacle information around the robot. These grids are then expanded to obtain expanded grids, which are subsequently designated as obstacle grids. The nearest non-obstacle grid adjacent to an obstacle grid is identified and used as a starting point. Starting from this starting point, multiple non-obstacle grids are searched along the boundary between obstacle and non-obstacle grids. A travel path is constructed based on these non-obstacle grids, and the robotic vacuum cleaner is driven to move along the edge and perform cleaning operations based on this path.
[0016] In this solution, the grid containing obstacles is determined based on the detected obstacle information, and then expanded to obtain an expanded grid, which can effectively avoid collisions between the robot vacuum and obstacles. Furthermore, by searching along the boundary between obstacle grids and non-obstacle grids, a good edge-keeping state can be maintained, thus ensuring a good cleaning effect. Attached Figure Description
[0017] To more clearly illustrate the technical solutions of the embodiments of the present invention, the accompanying drawings used in the embodiments of the present invention will be briefly introduced below. It should be understood that the following drawings only show some embodiments of the present invention and should not be regarded as a limitation on the scope. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.
[0018] Figure 1 A flowchart of a sweeping robot edge cleaning control method provided in an embodiment of the present invention; Figure 2 for Figure 1 A flowchart of the sub-steps included in S11; Figure 3 for Figure 1 A flowchart of the sub-steps included in S12; Figure 4 This is a schematic diagram of the structure of the sweeping robot in an embodiment of the present invention; Figure 5 This is a schematic diagram of a grid map in an embodiment of the present invention; Figure 6 for Figure 1 A flowchart of the sub-steps included in S14; Figure 7 This is a schematic diagram of a partial grid in an embodiment of the present invention; Figure 8 for Figure 1 A flowchart of the sub-steps included in S15; Figure 9This is a schematic diagram of the driving path in an embodiment of the present invention; Figure 10 for Figure 1 A flowchart of the sub-steps included in S16; Figure 11 This is a functional block diagram of the edge cleaning control device for a sweeping robot provided in an embodiment of the present invention; Figure 12 This is a structural block diagram of a sweeping robot provided in an embodiment of the present invention. Detailed Implementation
[0019] The technical solutions of the present invention will now be described with reference to the accompanying drawings in the embodiments of the present invention.
[0020] Please see Figure 1 This is a flowchart illustrating the edge-cleaning control method for a robotic vacuum cleaner provided in an embodiment of the present invention. It should be understood that in other embodiments, the order of some steps in the edge-cleaning control method of this embodiment can be interchanged according to actual needs, or some steps can be omitted or deleted. The detailed steps of the edge-cleaning control method for the robotic vacuum cleaner are described below.
[0021] S11, Construct a grid map in the robot coordinate system, and determine the grids with obstacles in the grid map based on the obstacle information detected around the sweeping robot; S12, based on the grid with obstacles, perform expansion processing to obtain an expanded grid, and determine the grid with obstacles and the expanded grid as obstacle grids; S13, find the non-obstacle grid that is closest to the robot vacuum and adjacent to the obstacle grid, and use it as the starting point; S14, Starting from the starting point, search for multiple non-obstacle grids along the boundary between obstacle grids and non-obstacle grids; S15, construct a driving path based on the found non-obstacle grid; S16, the sweeping robot is driven to move along the edge and perform cleaning operations based on the driving path.
[0022] In outdoor cleaning scenarios, since trash often accumulates around flower beds, ponds, and walls, the edge-cleaning performance of a robotic vacuum cleaner is particularly important. While maintaining good edge-cleaning performance, it's also crucial to avoid collisions with obstacles to prevent damage. Therefore, during edge-cleaning operations, a robotic vacuum cleaner needs to maintain good edge-keeping while avoiding collisions with obstacles.
[0023] In this embodiment, obstacle information within the detected area is first projected onto a grid map using a gridded approach. Then, the grid with obstacles is expanded to obtain an expanded obstacle grid. This avoids collisions between the robot vacuum and obstacles during operation. Furthermore, by finding a travel path along the boundary between the obstacle and non-obstacle grids, the robot vacuum is driven to move along the edge and perform cleaning operations based on this path. This ensures the cleaning operation remains along the edge and guarantees effective edge cleaning.
[0024] The specific implementation methods of each of the above steps will be explained in detail below.
[0025] In this embodiment, the robotic vacuum cleaner is equipped with multiple sensing devices, including LiDAR, cameras, millimeter-wave radar, ultrasonic radar, and infrared sensors. These sensors can detect obstacle information in the surrounding environment in real time. Furthermore, a grid map with a certain length and width is constructed centered on the robotic vacuum cleaner. Specifically, a blank local grid map with a certain length and width is constructed with the x-axis of the robot's coordinate system parallel to it as the x-direction. The grid map is divided into multiple grids according to grid parameters; for example, multiple grids are divided on a 10m × 10m local grid map, and the value (grayscale value) of each grid is initialized to 0.
[0026] Based on the detected obstacle information, the grid cells containing obstacles in the grid map are identified. Specifically, please refer to [link to relevant documentation]. Figure 2 This step can be achieved in the following way: S111, Obtain the point cloud of obstacles around the detected robot vacuum cleaner; S112, For each 3D point in the obstacle point cloud, obtain the grid coordinates of the 3D point in the grid map based on the coordinates of the 3D point in the robot coordinate system and the grid parameters of the grid map; S113, determine the grid to which the three-dimensional point belongs based on the grid coordinates, and thus identify the grid with obstacles.
[0027] In this embodiment, the sensing devices on the robotic vacuum cleaner can detect obstacles in the surrounding environment and obtain obstacle point clouds. The obstacle point cloud is a three-dimensional spatial point cloud. The obstacle point cloud in three-dimensional space is mapped to the two-dimensional robot coordinate system. That is, the height information of the obstacle point cloud is set to the height information of the robot coordinate system, for example, it can be 0.
[0028] The grid map exists in a coordinate system built upon the robot's coordinate system. Therefore, obstacle point clouds can be mapped onto the grid map.
[0029] The obstacle point cloud comprises multiple 3D points, which are mapped onto a grid map. Based on the coordinates of the 3D points in the robot coordinate system and the grid parameters of the grid map, the grid coordinates of the 3D points in the grid map are determined according to the following formula:
[0030] in, , These are the raster coordinates of the raster map. , Let be the coordinates of a 3D point in the obstacle point cloud in the robot coordinate system. For raster parameters (such as raster resolution).
[0031] After determining the grid coordinates of each 3D point in the grid map, the grid to which each 3D point belongs can be determined. In this way, the grid cells containing obstacles in the grid map can be identified.
[0032] In this embodiment, the grayscale value of the grid with obstacles can be set to 255, which will be displayed as black.
[0033] In addition, there are some obstacles within the area that are not detected in real time, but which are still areas where the robot vacuum is prohibited from entering, such as driveway edges, virtual walls, and no-go zones. To prevent the robot vacuum from entering these areas, the information of virtual obstacles within the area can be obtained in advance, mapped onto a grid map, and the grids containing virtual obstacle information can also be set as grids with obstacles, with their grayscale value set to 255.
[0034] In this way, a planar grid map marking dynamic, static, and virtual obstacles within the area can be obtained.
[0035] In this embodiment, the grid map is a dynamic map, and its size only covers a local observation range, that is, a local area centered on the robot vacuum cleaner. Therefore, the processing load of the grid map is relatively small, avoiding the problem of excessive processing burden. Thus, a higher resolution can be used; for example, the grid resolution can be set to 1 cm, which allows for good edge path extraction results.
[0036] During edge-keeping operations, it's crucial to avoid collisions with obstacles. Therefore, to ensure proper edge-keeping distance, this embodiment uses an expanded grid based on the grid containing obstacles. For details, please refer to [link to relevant documentation]. Figure 3 This step can be achieved in the following way: S121, obtain the dimensional information of the outer circle of the robot vacuum's body structure, and determine the expansion thickness based on the dimensional information; S122, based on the expansion thickness, expand the grid map around the grid with obstacles to obtain the expanded grid.
[0037] When locating obstacles, the positioning is based on the position of the detection device on the robot vacuum or the center position of the robot's body. Different robot vacuums may have different body sizes, and the collision avoidance between the robot vacuum and obstacles requires ensuring that there is no collision with the obstacle around the robot's body.
[0038] Therefore, in this embodiment, when expanding the grid, the expansion thickness is determined based on the dimensions of the circumcircle of the robot's body structure, and the expansion process is performed around the grid containing obstacles based on this expansion thickness. The circumcircle of the robot's body structure is as follows: Figure 4 As shown in the image.
[0039] For example, the larger the radius of the circumcircle of the robot vacuum's body structure, the greater the corresponding expansion thickness can be set. This results in a larger distance between the robot's center and obstacles, preventing collisions between the robot's body and obstacles. Conversely, if the radius of the circumcircle of the robot vacuum's body structure is small, a smaller expansion thickness can still ensure collision avoidance with obstacles around the robot's body.
[0040] In this embodiment, the step of expanding the grid map around the grid with obstacles according to the expansion thickness to obtain the expanded grid can be achieved in the following way: The number of expansions is determined based on the expansion thickness. In each round of expansion, grids with obstacles or grids surrounding the determined expansion grids are converted into expansion grids. This process continues until the expansion corresponding to the number of expansions is completed, at which point the final expansion grid is determined.
[0041] When expanding a grid map around a grid with obstacles, it can be understood as expanding outward layer by layer from the grid with obstacles as the center. In this embodiment, the expansion thickness is converted into the number of expansions. For example, if the expansion thickness is the thickness of N grids, then the number of expansions is N. Thus, in each round of expansion, the thickness of one grid is expanded outward until N expansions are completed, thereby completing the work of expanding outward by N grids.
[0042] In this embodiment, during each round of expansion, grid points of grids with obstacles are sequentially placed into stack S. Then, element point p is popped sequentially from the top of stack S, and the surrounding grids of the popped element point p, such as its top, bottom, left, and right, are checked to see if they are either grids with obstacles or determined expanded grids. If they are either grids with obstacles or determined expanded grids, element point p can be skipped, and the next element point can be checked. If there are grids around element point p that are neither grids with obstacles nor determined expanded grids, then the grid can be converted into an expanded grid, and the grid points of the expanded grid are stored in stack S2.
[0043] After traversing all elements in stack S in the manner described above, one round of expansion is completed. If the expansion count has not been reached, the elements in stack S2 are pushed back into stack S, and the above steps are repeated until the expansion count is reached. At this point, the entire expansion process is complete, and the grayscale value of the determined expanded raster can be set, for example, it can be displayed as follows. Figure 5 The grayscale raster in the image.
[0044] In this embodiment, the robot vacuum cleaner's dimensions are expanded to accommodate irregularly shaped obstacles such as pits and inner corners that can easily cause it to get stuck. This allows the robot vacuum cleaner to achieve a relatively smooth driving path. This solution effectively suppresses robot jamming and repeated reversing in complex edge-adjacent environments such as corners, concave edges, and inner corners, significantly improving the efficiency of edge-adjacent robot vacuum cleaner operations.
[0045] Based on the above, find the non-obstacle grid in the grid map that is closest to the robot vacuum and adjacent to the obstacle grid, and use it as the starting point.
[0046] Specifically, the grid point of the center of the robot vacuum cleaner can be stored in a priority queue R, and this grid point can be used as a reference point. The distances between the surrounding grid points and this reference point can be calculated, such as Euclidean distances. The surrounding grid points are then stored in the priority queue in sequence, with the grid points with smaller corresponding distances placed at the top of the priority queue.
[0047] Extract an element point from the top of the priority queue, and then sequentially store the other grid points (e.g., the eight surrounding grid points) that have not been selected into the priority queue R into the priority queue. This continues until a grid point selected into the priority queue is a gray expanded grid in the grid map, indicating that a non-obstacle grid that is closest to the robot vacuum and adjacent to the obstacle grid has been found.
[0048] The starting point of the subsequent travel path along the edge is determined as the grid point of the non-obstacle grid that has been found.
[0049] In this solution, the extended search method described above can quickly and effectively find the nearest obstacle for the robot vacuum cleaner, thereby determining the starting point.
[0050] Based on this, starting from the starting point, multiple non-obstacle grids are searched along the boundary between obstacle grids and non-obstacle grids to form a driving path. For details, please refer to [link to relevant documentation]. Figure 6 In this embodiment, this step can be implemented in the following way: S141, Starting from the starting point, roll along the boundary between the obstacle grid and the non-obstacle grid in a clockwise or counterclockwise direction to construct four-neighborhoods and determine the extension direction of the constructed four-neighborhoods. S142, for each constructed four-neighborhood, locate the non-obstacle grid cell within the four-neighborhood that is adjacent to the obstacle grid cell and closest to the extension direction, in order to find multiple non-obstacle grid cells.
[0051] In this embodiment, starting from the starting point, the non-obstacle grid is extracted around the set of obstacle grids according to the left or right edge requirements in a clockwise or counterclockwise direction, thereby determining the driving path.
[0052] The following example, using the requirement of right-side attachment, illustrates how to implement non-obstacle grid searching starting from the starting point.
[0053] In this embodiment, the grid points corresponding to the starting point can be stored in a queue. In the middle, in the queue Using a grid point as the anchor point, extending one grid point downwards and one grid point to the right results in a four-neighborhood, for example... Figure 7 As shown in Table 1, the grid numbers 1, 2, 3, and 4 represent the grid numbers in the four-neighbor area. Assuming the top-left grid 1 in the four-neighbor area is the anchor point, the number 1 in parentheses indicates a gray grid (representing an obstacle grid), and 0 indicates a white grid (representing a non-obstacle grid). Based on the different combination patterns of the grids in the four-neighbor area, boundary scrolling and the search for non-obstacle grids can be performed according to the rules shown in Table 1.
[0054] Table 1. Non-obstacle grid search rules
[0055] Through the above method, queue The non-obstacle grid stored in the database is the non-obstacle grid found at the boundary.
[0056] Among the search principles mentioned above, the one that is related to... Figure 7The following example illustrates a combination pattern matching the given pattern, where grids 1-4 are each 1010. In this pattern, if the robot vacuum is on the right edge and the obstacle grid is to the left of the non-obstacle grid, it indicates that the robot vacuum is on the right side of its four-neighborhood. This four-neighborhood extends from grid 1 to grid 3. The non-obstacle grids adjacent to the obstacle grid in this four-neighborhood include grids 2 and 4. Among grids 2 and 4, the non-obstacle grid closest to the extending direction is grid 4. Therefore, as shown in Table 1, grid 4 is stored in the queue. In the middle, it serves as the non-obstacle grid that has been found.
[0057] Along the extension direction of the four neighboring areas, grid 3 becomes the next grid anchor point, that is, grid 3 becomes the top left corner of the next four neighboring area, and then the non-obstacle grids in the next four neighboring area are searched. This process continues until all obstacle grids have been traversed.
[0058] In this solution, by using the above method of scrolling along the edge of obstacles to search, non-obstacle grids can be extracted efficiently, and then a driving path can be constructed.
[0059] After identifying multiple non-obstacle grids using the above method, their grid coordinates can be transformed into the robot coordinate system. This transformation can be performed in the following way:
[0060] In this way, the driving path of the controllable robot vacuum cleaner along the edge is obtained.
[0061] Due to the gridding process, the driving path obtained in the above way will exhibit a jagged appearance. To find a collision-free, smooth driving path that meets kinematic requirements, please refer to [link to relevant documentation]. Figure 8 In this embodiment, the step of constructing a driving path based on the found non-obstacle grid can be implemented in the following way: S151, Construct an initial driving path based on the found non-obstacle grid; S152, construct multiple optimization indicators, and optimize the initial driving path based on the multiple optimization indicators and a multi-objective optimization algorithm to obtain the optimized driving path.
[0062] In this embodiment, after the found non-obstacle grid is converted to the robot coordinate system in the manner described above, an initial driving path can be constructed.
[0063] Based on the initial driving path, the initial driving path is optimized under multiple set optimization indicators to obtain the final optimized driving path.
[0064] Specifically, the variables to be optimized are determined as follows:
[0065] in, This can be understood as the driving route. The first in Points for arrive The time interval between them. Depend on Each point is composed of x and y coordinates and an orientation angle.
[0066] To further ensure collision-free operation between the robotic vacuum cleaner and obstacles, one of the optimized metrics is the distance between the robotic vacuum cleaner and obstacles. This distance is calculated from the minimum distance between the robotic vacuum cleaner's collision detection safety frame and the obstacle, as well as the set safe distance for the robot.
[0067] The obstacle edges extracted using the above method are: , This represents the minimum distance from the collision detection safety frame of the robotic vacuum cleaner to an obstacle. If the safety frame intrudes into an obstacle, a negative value is assigned. To maintain a safe distance for the robot, the distance metric can be set as follows:
[0068] Among them, if but ,if ,but . This represents the weighting coefficient for the distance indicator.
[0069] Furthermore, in order to ensure that the robot vacuum cleaner's brushes achieve zero contact with obstacles, this embodiment includes a distance deviation index between the robot vacuum cleaner's brushes and obstacles among the various optimization metrics. This distance deviation index can be obtained in the following way: The system obtains the position and orientation information of each point in the initial driving path, and the relative position of the sweeping brush center relative to the robot body. Based on the position, orientation, and relative position, the system determines the coordinates of the sweeping brush center. Based on the coordinates of the sweeping brush center, the system obtains the minimum distance between the sweeping brush center and the obstacle. Based on the minimum distance and the sweeping brush radius, the system constructs a distance deviation index.
[0070] Once the initial driving path is determined, the location and orientation information of each point included can be obtained. In addition, the relative position of the brush center with respect to the robot body can be obtained, which is determined by the installation dimensions.
[0071] The coordinates of the sweeping circle's center can be determined using the following formula:
[0072] in: The coordinates of the edge brush center when the i-th point is located; This provides the location information for the i-th point. This refers to the orientation information of the i-th point; This refers to the relative position of the brush center relative to the robot vacuum body.
[0073] Based on the determined sweeping center, the nearest obstacle to the sweeping center can be identified through nearest neighbor search, thus obtaining the minimum distance between the sweeping center and the obstacle. If the sweeper intrudes into an obstacle, the minimum distance is negative.
[0074] In addition, the radius of the sweeping brush is obtained. The constructed distance deviation index is shown below:
[0075] The optimization objective of this distance deviation index is to minimize the distance between the center of the sweeping circle and the obstacle, that is, to minimize the distance deviation index. This represents the weighting coefficient.
[0076] In this embodiment, setting the edge control points for the robot vacuum's brushes better meets the operational needs of cleaning the edges of obstacles. Furthermore, while constraining the distance the robot vacuum's brushes travel along the edge, it also constrains the safe distance between the robot's body and the obstacle, thus preventing collisions while ensuring edge-tracing accuracy.
[0077] In addition to the optimization indicators mentioned above, this embodiment also includes speed constraint indicators, acceleration constraint indicators, path deviation constraint indicators, shortest time constraint indicators, shortest path constraint indicators, and kinematic constraint indicators.
[0078] The speed constraint index can be set in the following ways: two adjacent points and The distance between them is The linear velocity of point i is The angular velocity of point i is .
[0079] The linear velocity deviation is: if and ,but ; if ,but ; if ,but .
[0080] Angular velocity deviation is: if and ,but ; if ,but ; if ,but .
[0081] Based on the above, the speed constraint index can be expressed as follows:
[0082] in, , These are the linear velocity constraint weights and angular velocity constraint weights, respectively.
[0083] In addition, acceleration constraint parameters can be set in the following ways: extract , , and , It is easy to conclude , linear velocity and angular velocity at the point , , , .
[0084] linear acceleration is angular acceleration is .
[0085] The linear acceleration deviation is: if and ,but ; if ,but ; if ,but .
[0086] The angular acceleration deviation is: if and ,but ; if ,but ; if ,but .
[0087] Based on the above, the acceleration constraint index can be expressed as follows:
[0088] in, , These are the linear acceleration constraint weights and the angular acceleration constraint weights, respectively.
[0089] Path deviation constraints can be set in the following ways: The points on the new driving path obtained during the optimization process must remain near the points on the original initial driving path. Based on this, the path deviation constraint index can be expressed as follows:
[0090] in, This represents the distance between two points. The weights are for path deviation constraints.
[0091] The shortest time constraint can be expressed as follows:
[0092] The shortest path constraint metric can be expressed as follows:
[0093] in, This indicates that the distance between two points is calculated.
[0094] Furthermore, the optimized driving path must also satisfy kinematic constraints. These constraints ensure that the optimized path distribution and orientation allow the robot vacuum to smoothly transition through circular arcs. This makes the driving path smoother, reduces unnecessary acceleration, deceleration, and rotation, and prevents stuttering or unevenness during the robot vacuum's movement.
[0095] Combination Figure 9 As shown, in order to satisfy the circular arc constraint, it is necessary to make ,Right now Therefore, the constraint error can be obtained as follows:
[0096] Transforming the above expression, we obtain the following form:
[0097] Thus, the planar motion constraints can be obtained as shown below. and angular motion constraints :
[0098]
[0099] The radius of the arc can be calculated using the following formula. :
[0100] Minimum turning radius constraint The settings are as follows: if ,but ; if ,but .
[0101] Combining planar motion constraints, angular motion constraints, and minimum turning radius constraints, the following kinematic constraint indices are obtained:
[0102] in, , , These represent the weights for planar motion constraints, angular motion constraints, and minimum turning radius constraints, respectively.
[0103] Based on the multiple optimization indices set above, the following multi-objective constraint function can be constructed. The optimal driving path is then found through a multi-objective optimization algorithm, minimizing the multi-objective constraint function. Multi-objective optimization algorithms include, but are not limited to, the Gauss-Newton method, the Levenberg-Marquardt method, and algorithms such as graph optimization and factor graph methods. The optimal solution obtained at this point is denoted as... .
[0104]
[0105] In this scheme, edge control comprehensively considers various constraints such as robot movement speed, acceleration, path smoothness, shortest path, kinematic constraints, brush edge-attaching distance, and body safety distance. Each constraint is configured with different weight coefficients to control the preference of the final optimization result, so as to adapt to different scenario requirements.
[0106] The optimized driving path is obtained through the above methods. The driving path includes multiple points and the time interval between each two adjacent points.
[0107] Based on this, please refer to Figure 10The steps of driving a sweeping robot along the edge and performing cleaning operations based on the travel path can be achieved in the following ways: S161, obtain the location information, orientation angle and time interval of the two latest points in the driving path; S162, obtains linear velocity control commands based on the position information and time interval of the two points; S163, obtains angular velocity control commands based on the orientation angles and time intervals of the two points; S164 drives the sweeping robot to move along the edge and perform cleaning operations based on linear velocity control commands and angular velocity control commands.
[0108] In this embodiment, the robot vacuum cleaner is controlled in real time. Therefore, real-time control is performed based on the relevant information of the two latest points in the obtained travel path.
[0109] From the optimized driving route described above Extract the two latest sets of data Calculate the linear velocity and angular velocity using the following formulas respectively:
[0110]
[0111] Sending the above linear velocity control commands and angular velocity control commands to the robot vacuum's walking drive device will drive the robot vacuum to move along the edge.
[0112] In this embodiment, the optimal control speed is directly output, eliminating the need for additional post-processing. The solution for the optimal speed takes into account the walking trend over a future period, ensuring continuous and smooth driving.
[0113] Please see Figure 11 The present invention also provides a sweeping robot edge cleaning control device, which can be used to control the sweeping robot to perform edge cleaning. The device can be implemented by software and / or hardware and is generally integrated into the control equipment of the sweeping robot.
[0114] like Figure 11 As shown, the edge cleaning control device for the robotic vacuum cleaner includes a building module, an expansion module, a search module, and a drive control module. The functions of each module of this edge cleaning control device will be described in detail below.
[0115] The building module is used to construct a grid map in the robot coordinate system and determine the grids with obstacles in the grid map based on the obstacle information detected around the robot vacuum cleaner; An expansion module is used to expand a grid based on a grid with obstacles to obtain an expanded grid, and to define the grid with obstacles and the expanded grid as an obstacle grid; The search module is used to find the non-obstacle grid that is closest to the robot vacuum and adjacent to the obstacle grid, and use it as the starting point. The search module is also used to search for multiple non-obstacle grids along the boundary between obstacle grids and non-obstacle grids, starting from the starting point; The drive control module is used to construct a driving path based on the found non-obstacle grid, and drive the sweeping robot to move along the edge and perform cleaning operations based on the driving path.
[0116] The specific implementation process of the functions and roles of each module in the above device can be found in the implementation process of the corresponding steps in the above method, and will not be repeated here.
[0117] Figure 12 This is a structural schematic diagram of a sweeping robot provided in an embodiment of the present invention. Figure 12 As shown, the robotic vacuum cleaner includes one or more processors and a storage device; the processor in the device can be one or more. Figure 12 Taking a processor as an example; a storage device is used to store one or more programs; one or more programs are executed by one or more processors, causing one or more processors to implement the edge cleaning control method for a sweeping robot as described in any of the embodiments of the present invention.
[0118] Robotic vacuum cleaners can also include multiple sensors.
[0119] The processor and storage device in a robotic vacuum cleaner can be connected via a bus or other means. Figure 12 Taking the example of a connection between China and Israel via a bus.
[0120] The storage device in this apparatus serves as a computer-readable storage medium, capable of storing one or more programs. These programs can be software programs, computer-executable programs, and modules, such as the program instructions / modules corresponding to the edge-cleaning control method for a sweeping robot provided in this embodiment of the invention. The processor executes various functional applications and data processing of the sweeping robot by running the software programs, instructions, and modules stored in the storage device, thereby implementing the edge-cleaning control method for a sweeping robot as described in the above method embodiment.
[0121] The storage device may include a stored program area and a stored data area, wherein the stored program area may store the operating system and at least one application program required for a function; and the stored data area may store data created based on the use of the device. Furthermore, the storage device may include high-speed random access memory and may also include non-volatile memory, such as at least one disk storage device, flash memory device, or other non-volatile solid-state storage device.
[0122] In some instances, the storage device may further include memory remotely located relative to the processor, which can be connected to the device via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.
[0123] Furthermore, when one or more programs included in the above-mentioned device are executed by one or more processors, the programs execute the edge cleaning control method for the sweeping robot in any implementation of the embodiments of the present invention.
[0124] This invention also provides a computer-readable storage medium storing a computer program thereon, which, when executed by a processor, is used to perform the edge-cleaning control method for a sweeping robot in any implementation of this invention.
[0125] The computer storage medium of this invention can be any combination of one or more computer-readable media. The computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium. For example, a computer-readable storage medium can be, but is not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of computer-readable storage media include: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), flash memory, optical fiber, portable CD-ROM, optical storage device, magnetic storage device, or any suitable combination thereof. The computer-readable storage medium can be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.
[0126] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. Computer-readable signal media may also be any computer-readable medium other than computer-readable storage media, which can send, propagate, or transmit programs for use by or in connection with an instruction execution system, apparatus, or device.
[0127] Program code contained on a computer-readable medium may be transmitted using any suitable medium, including but not limited to: wireless, wire, optical fiber, radio frequency (RF), etc., or any suitable combination thereof.
[0128] Computer program code for performing the operations of this invention can be written in one or more programming languages or a combination thereof. Programming languages include object-oriented programming languages—such as Java, Smalltalk, and C++—as well as conventional procedural programming languages—such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0129] Note that the above description is merely a preferred embodiment of the present invention and the technical principles employed. Those skilled in the art will understand that the present invention is not limited to the specific embodiments described herein, and various obvious changes, readjustments, and substitutions can be made without departing from the scope of protection of the present invention. Therefore, although the present invention has been described in detail through the above embodiments, the present invention is not limited to the above embodiments, and may include many other equivalent embodiments without departing from the concept of the present invention, the scope of which is determined by the scope of the appended claims.
Claims
1. A method for controlling edge cleaning of a sweeping robot, characterized in that, The method includes: A grid map is constructed in the robot coordinate system, and the grids containing obstacles in the grid map are determined based on the obstacle information detected around the robot vacuum cleaner; An expanded grid is obtained by expanding the grid with obstacles, and the grid with obstacles and the expanded grid are defined as obstacle grids; Find the non-obstacle grid that is closest to the robot vacuum and adjacent to the obstacle grid, and use it as the starting point; Starting from the aforementioned starting point, search for multiple non-obstacle grids along the boundary between the obstacle grid and the non-obstacle grid; The robot vacuum cleaner constructs a travel path based on the found non-obstacle grid, and drives the robot to move along the edge and perform cleaning operations based on the travel path.
2. The method for controlling edge cleaning of a sweeping robot according to claim 1, characterized in that, The step of constructing a driving path based on the found non-obstacle grid includes: Construct an initial driving path based on the found non-obstacle grid; Multiple optimization indicators are constructed, and the initial driving path is optimized based on the multiple optimization indicators and a multi-objective optimization algorithm to obtain the optimized driving path.
3. The method for controlling edge cleaning of a sweeping robot according to claim 1, characterized in that, The step of determining the grid cells containing obstacles in the grid map based on the detected obstacle information around the robotic vacuum cleaner includes: Obtain point clouds of obstacles around the detected robotic vacuum cleaner; For each three-dimensional point in the obstacle point cloud, the grid coordinates of the three-dimensional point in the grid map are obtained based on the coordinates of the three-dimensional point in the robot coordinate system and the grid parameters of the grid map. The grid to which the three-dimensional point belongs is determined based on the grid coordinates, thereby identifying the grid with obstacles.
4. The method for controlling edge cleaning of a sweeping robot according to claim 1, characterized in that, The step of expanding the grid based on the grid with obstacles to obtain the expanded grid includes: Obtain the dimensional information of the outer circle of the robot's body structure, and determine the expansion thickness based on the dimensional information; The expanded grid is obtained by expanding the grid around the grid with obstacles in the grid map according to the expanded thickness.
5. The method for controlling edge cleaning of a sweeping robot according to claim 4, characterized in that, The step of expanding the grid map around the grid with obstacles according to the expansion thickness to obtain an expanded grid includes: The corresponding number of expansions is determined based on the expansion thickness. In each round of expansion, grids with obstacles or grids surrounding a identified expansion grid are converted into expansion grids; The final expanded grid is determined until the expansion corresponding to the number of expansions is completed.
6. The method for controlling edge cleaning of a sweeping robot according to claim 1, characterized in that, The step of searching for multiple non-obstacle grids along the boundary between obstacle grids and non-obstacle grids starting from the starting point includes: Starting from the starting point, four-neighborhoods are constructed by rolling along the boundary between the obstacle grid and the non-obstacle grid in a clockwise or counterclockwise direction, and the extension direction of the constructed four-neighborhoods is determined. For each constructed four-neighborhood, locate the non-obstacle grid within the four-neighborhood that is adjacent to the obstacle grid and closest to the extension direction, in order to find multiple non-obstacle grids.
7. The method for controlling edge cleaning of a sweeping robot according to claim 2, characterized in that, The multiple optimization indicators include the distance deviation between the sweeping brush of the sweeping robot and the obstacle; The distance deviation index is obtained in the following way: The location and orientation information of each point included in the initial driving path are obtained, and the relative position of the sweeping brush center of the sweeping robot with respect to the body of the sweeping robot is obtained. The coordinates of the center of the sweeping circle are determined based on the location information, orientation information, and relative position. Based on the coordinates of the center of the sweeping circle, the minimum distance between the center of the sweeping circle and the obstacle is obtained; A distance deviation index is constructed based on the minimum distance and the radius of the sweeping brush.
8. The method for controlling edge cleaning of a sweeping robot according to claim 2, characterized in that, The multiple optimization metrics include the distance between the robotic vacuum cleaner and the obstacle; The distance between the robotic vacuum cleaner and the obstacle is calculated from the minimum distance between the collision detection safety frame of the robotic vacuum cleaner and the obstacle, as well as the set robot safety distance.
9. The method for controlling edge cleaning of a sweeping robot according to claim 1, characterized in that, The driving path includes multiple points and the time interval between each two adjacent points; The step of driving the sweeping robot to move along the edge and perform cleaning operations based on the travel path includes: Obtain the location information, orientation angle, and time interval of the two latest points in the driving path; The linear velocity control command is obtained based on the position information and time interval of the two points; The angular velocity control command is obtained based on the orientation angle and time interval of the two points; The robot vacuum cleaner is driven to move along the edge and perform cleaning operations based on the linear velocity control command and angular velocity control command.
10. A robotic vacuum cleaner, characterized in that, include: One or more processors; Storage device for storing one or more programs; When the one or more programs are executed by the one or more processors, the one or more processors implement the method as described in any one of claims 1 to 9.