Ultrasonic-based motion planning method for ground environments
By using ultrasonic sensors to detect carpet partitions and combining them with inertial sensors for repositioning, the cleaning robot solves the problems of missed sweeps and repeated sweeps at the junction of hard floors and carpets, achieving more efficient cleaning results.
Patent Information
- Application Number
- CN202211238871.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-10-11
- Publication Date
- 2025-09-09
- Estimated Expiration
- 2042-10-11
AI Technical Summary
When the cleaning robot walks in an indoor environment, the carpet slips, resulting in missed cleaning or repeated cleaning, especially at the junction of hard floors and carpets, and the hard floor area cannot be effectively covered.
Ultrasonic sensors are used to detect carpet partitions, calculate the ratio of their area to the hard floor area, screen the carpet partitions to be cleaned, and clean them within the standard cleaning time. Inertial sensors are used to reposition the robot's position to ensure that the hard floor area is completely cleaned.
It reduces the impact of carpet slippage on cleaning results, avoids missed cleaning and repeated cleaning of hard floor areas, and improves the cleaning coverage rate of the cleaning robot.
Smart Images

Figure CN115755881B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the technical field of intelligent mobile robots, and in particular to a method for motion planning in a ground environment based on ultrasound. Background Art
[0002] In indoor environments, when a cleaning robot that uses only inertial sensors for navigation walks on the ground, it may come into contact with floor media such as carpets that can easily cause the driving wheels of the cleaning robot to slip. If the cleaning robot slips or idles while walking on the carpet, it is easy to miss or repeat the cleaning. If the cleaning robot slips on the carpet, the distance marked in the map based on the inertial sensor has exceeded the distance that can be walked at the expected speed, and it is determined from the map that the cleaning robot has stepped out of the carpet and onto the hard floor, and part of the hard floor area will be marked as cleaned on the map, but the cleaning robot has not actually cleaned and covered this part of the area. In the subsequent planned cleaning process, this part of the area will be bypassed, and the cleaning robot is likely to miss sweeping on the hard floor. Therefore, in the same indoor environment, when the cleaning robot travels back and forth between carpets and hard floors, two areas with different hard and soft floor media, the cleaning coverage rate of the cleaning robot on the hard floor is often reduced due to the cleaning robot slipping on the carpet. Summary of the Invention
[0003] This application discloses a ground environment motion planning method based on ultrasound. The specific technical solution is as follows:
[0004] The ultrasonic-based ground environment motion planning method is applicable to a cleaning robot equipped with an ultrasonic sensor at the bottom, and the cleaning robot is configured to walk in a ground environment with carpets and hard floors; the ground environment motion planning method comprises: step S1, the cleaning robot detects at least one carpet partition based on the detection signal strength received by the ultrasonic sensor, and then walks in the passable area outside the detected carpet partition, and calculates the area of the carpet partition according to the boundary line of the detected carpet partition, until the cleaning robot walks through the hard floor area in the indoor environment and calculates the area of the hard floor area, wherein the cleaning robot marks the passable area in the indoor environment except the detected carpet partition as the hard floor area; a boundary line is set between each carpet partition and the hard floor area to mark it as the boundary line of the corresponding carpet partition; step S2, according to the area of the carpet partition and the area of the hard floor area The ratio of the area of the carpet partition to be cleaned is used to screen out the carpet partition to be cleaned from the carpet partitions detected in step S1; then, a standard cleaning time of the cleaning robot in the carpet partition to be cleaned is set according to the area of the carpet partition to be cleaned; in step S3, the cleaning robot enters the currently screened carpet partition to be cleaned from the hard ground area, and then keeps walking in the same carpet partition to be cleaned until the time spent by the cleaning robot walking in the carpet partition to be cleaned reaches the standard cleaning time; in step S4, after the walking time spent in the carpet partition to be cleaned described in step S3 reaches the standard cleaning time, the cleaning robot starts to walk along the boundary line of the carpet partition to be cleaned and extracts the edge and corner information of the carpet partition to be cleaned, and then repositions the posture information of the cleaning robot based on the extracted edge and corner information of the carpet partition to be cleaned, and updates the current position of the cleaning robot with the repositioned posture information, and then leaves the carpet partition to be cleaned.
[0005] Furthermore, in step S2, the method of screening out carpet partitions to be cleaned from the carpet partitions detected in step S1 based on the ratio of the area of the carpet partition to the area of the hard floor area includes: the cleaning robot determines whether the ratio of the area of a carpet partition calculated in step S1 to the area of the hard floor area is within a preset coverage ratio range; if so, the carpet partition is set as a carpet partition to be cleaned and the cleaning robot determines to screen out a carpet partition to be cleaned; otherwise, the carpet partition is set as a prohibited cleaning partition; wherein the area of the prohibited cleaning partition is smaller than the area of the carpet partition to be cleaned; the preset coverage ratio range is used to describe the layout of the carpet partitions and the hard floor areas that the cleaning robot is allowed to walk in the same indoor environment; wherein the surface covering medium of the hard floor area is different from the surface covering medium of the carpet partition to be cleaned, and different carpet partitions to be cleaned are separated by the hard floor area.
[0006] Furthermore, when the step S3 is executed for the first time, the cleaning robot has walked through the hard floor area, and then before the cleaning robot enters the carpet partition to be cleaned, it selects a carpet partition to be cleaned that is closest to the current position of the cleaning robot and updates it as the currently filtered carpet partition to be cleaned, and then the cleaning robot starts to enter the currently filtered carpet partition to be cleaned from its current position; after executing the step S4, it also includes: the cleaning robot selects an untraversed carpet partition to be cleaned that is closest to the updated current position and sets it as the currently filtered carpet partition to be cleaned; then walks to the hard floor area to leave the current carpet partition to be cleaned, and then repeats steps S3 and S4 until the cleaning robot traverses each carpet partition to be cleaned in turn, and then returns to the hard floor area.
[0007] Furthermore, in step S1, the method in which the cleaning robot detects at least one carpet partition based on the detection signal strength received by the ultrasonic sensor includes: step S11, the cleaning robot walks on the hard ground area according to a preset planned path, and controls the ultrasonic sensor to emit ultrasonic waves and receive ultrasonic reflection signals, and at the same time controls the inertial sensor to measure the posture angle of the cleaning robot; step S12, when the intensity of the ultrasonic reflection signal received by the ultrasonic sensor is within a preset intensity threshold range, the cleaning robot detects the carpet, and marks the location point where the carpet is currently detected as the boundary point of the carpet, and then marks the grid corresponding to the boundary point of the carpet in the global map, and adjusts the walking direction so that the cleaning robot does not enter the carpet; wherein the boundary points of the carpet are connected to form the boundary line of the carpet, and the closed area formed by the boundary line of the carpet is configured as a carpet partition; the intensity of the ultrasonic reflection signal is the intensity of the detection signal received by the ultrasonic sensor.
[0008] Furthermore, in step S12, each time the cleaning robot detects a carpet, it walks along the boundary line of the currently detected carpet in an area outside the carpet while not entering the currently detected carpet. If, during a circle along the currently detected carpet boundary line, the cleaning robot detects that the intensity of an ultrasonic reflection signal reflected from a first side area of the boundary line is within a preset intensity threshold range, and detects that the intensity of an ultrasonic reflection signal reflected from a second side area of the same boundary line is not within the preset intensity threshold range, then the cleaning robot determines that the currently detected carpet boundary line encloses a carpet partition and that the cleaning robot has detected a carpet partition. The inertial sensor is used to measure whether the cleaning robot has walked along the boundary line once, and the boundary line of the carpet partition is a boundary line of the carpet. The cleaning robot then walks along the preset planned path to an untraversed area without entering the carpet, and then repeats steps S11 and S12 to detect a new carpet partition. The global map is a grid map and is cached in the memory of the cleaning robot. The cleaning robot is equipped with at least two ultrasonic sensors on the bottom to detect the type of ground medium in areas on both sides of the cleaning robot's walking direction.
[0009] Furthermore, in step S12, the cleaning robot first walks to the untraversed position point, and then continues to walk from the untraversed position point according to the preset planned path, but does not enter the carpet; when the cleaning robot walks through the area other than the detected carpet, it is determined that the remaining untraversed area is the carpet covered area; wherein, the carpet covered area is composed of at least one closed area formed by connecting the boundary points of the carpet, and a closed area is a carpet partition; the boundary points of each carpet partition belong to the boundary points of the carpet covered area.
[0010] Furthermore, in step S1, the method for calculating the area of the carpet partition based on the detected boundary line of the carpet partition includes: dividing the currently detected carpet partition into at least one regular graphic region; then calculating the projection length of the boundary line of the currently detected carpet partition in the horizontal coordinate axis direction and the projection length of the boundary line of the same carpet partition in the vertical coordinate axis direction; then, based on the geometric figure type of the regular graphic region constituting the currently detected carpet partition, calculating the area of the corresponding regular graphic region using the obtained projection lengths in the directions of each coordinate axis; and then setting the sum of the areas of all the regular graphic regions constituting the currently detected carpet partition as the area of the carpet partition.
[0011] Furthermore, the regular graphic area constituting a carpet partition is a rectangular area or a combination of at least two rectangular areas; in the same indoor environment, a hard floor area and at least one carpet partition constitute a rectangular area; wherein the hard floor area and the carpet partition are both set as passable areas.
[0012] Furthermore, step S1 also includes: after the cleaning robot has walked through the passable areas except all carpet partitions in the indoor environment, it is determined that the cleaning robot has traversed the hard ground area, and the position points where the cleaning robot has walked in the hard ground area are marked in sequence in the corresponding grids of the global map to form a contour map of the hard ground area; then the number of grids occupied by the hard ground area in the global map is counted, and the product of the number of grids and the area of the unit grid is set as the area of the hard ground area.
[0013] Furthermore, in step S2, the method for setting the standard cleaning time of the cleaning robot in the carpet partition to be cleaned according to the area of the carpet partition to be cleaned includes: the standard cleaning time is equal to the product of the ratio of the area of the carpet partition to be cleaned to the effective cleaning area of the cleaning robot and a preset error coefficient; wherein, the effective cleaning area of the cleaning robot is equal to the product of a preset walking speed of the cleaning robot and the body diameter of the cleaning robot; wherein, the preset error coefficient is used to indicate the degree of difference between the coverage area of the trajectory actually walked by the cleaning robot after the cleaning robot actually walks through the carpet partition to be cleaned and the area of the carpet partition to be cleaned.
[0014] Furthermore, in the step S3, the method for maintaining walking in the same carpet partition to be cleaned until the time consumed by the cleaning robot walking in the carpet partition to be cleaned reaches the standard cleaning time includes: step S31, in the process of the cleaning robot starting to walk from a preset walking starting point in the carpet partition to be cleaned, when the intensity of the ultrasonic reflection signal received by the ultrasonic sensor is not within the preset intensity threshold range, the cleaning robot determines that it is currently walking to the boundary line of the carpet partition to be cleaned, and then the cleaning robot adjusts its walking direction so that the cleaning robot does not walk outside the carpet partition to be cleaned, wherein the cleaning robot's adjusted walking direction The angle of the angle with the walking direction before the adjustment is set to be greater than or equal to the angle between the walking direction before the adjustment and the boundary line to which the cleaning robot walks; step S32, the cleaning robot keeps walking in the carpet partition to be cleaned until the time taken by the cleaning robot to walk from the preset walking starting point in the carpet partition to be cleaned reaches the standard cleaning time, and the cleaning robot determines that it has covered the carpet partition to be cleaned; wherein, the cleaning robot does not walk according to the preset planned path in the carpet partition to be cleaned; wherein, an ultrasonic sensor is installed in the front of the bottom of the cleaning robot for emitting ultrasonic waves toward the walking ground of the cleaning robot.
[0015] Furthermore, in step S3, after the cleaning robot has walked through the hard floor area, the method for the cleaning robot to enter a currently screened carpet partition to be cleaned from the hard floor area includes: selecting a corner point closest to the current position of the cleaning robot from all carpet partitions to be cleaned that have not been entered by the cleaning robot and configuring it as a reference corner point; wherein, the boundary points of each carpet partition to be cleaned include corner points; then, the cleaning robot selects two boundary lines with the reference corner point as a common endpoint in the carpet partition to be cleaned where the reference corner point is located and configures them as a first reference edge and a second reference edge respectively; the cleaning robot selects a midpoint closest to the current position of the cleaning robot from the midpoint of the first reference edge and the midpoint of the second reference edge and configures it as the current preset target point; then, the cleaning robot sets the carpet partition to be cleaned where the current preset target point is located as the carpet partition to be cleaned that the robot currently needs to enter.
[0016] Furthermore, in step S4, the cleaning robot starts to walk along the boundary line of the carpet partition to be cleaned and extracts the edge and corner information of the carpet partition to be cleaned, and then repositions the posture information of the cleaning robot based on the extracted edge and corner information of the carpet partition to be cleaned, and updates the current position of the cleaning robot with the posture information of the repositioned cleaning robot. The method includes: when the cleaning robot walks to the boundary line of the carpet partition to be cleaned, the cleaning robot rotates its body to adjust the walking direction until the intensity of the ultrasonic reflection signal received by the ultrasonic sensor installed on one side of the cleaning robot is not within the preset intensity threshold range, and the intensity of the ultrasonic reflection signal received by the ultrasonic sensor installed on the other side of the cleaning robot is within the preset intensity threshold range, then it is determined that the two ultrasonic sensors of the cleaning robot are separated on both sides of the boundary line of the carpet partition to be cleaned, and the current position of the robot is set as the repositioning starting position; the cleaning robot starts from the repositioning starting position while maintaining cleaning The ultrasonic sensors on both sides of the robot are separated on both sides of the boundary line of the carpet partition to be cleaned, and the robot walks in a preset clockwise direction, and uses an inertial sensor to detect the change in the deflection angle of the cleaning robot; when the cleaning robot walks to a corner point, the posture information of the corner point is set to re-position the posture information of the cleaning robot, and the posture information of the corner point is used to update the current posture information of the cleaning robot, so that the cleaning robot rotates through the reference angle in the preset clockwise direction at the corner point; then it is determined that the cleaning robot has regained its posture information within the carpet partition to be cleaned; wherein the change in the deflection angle is used to indicate the change in the walking direction of the cleaning robot; wherein the corner point is the common endpoint of the two boundary lines of the carpet partition to be cleaned; wherein the preset clockwise direction is clockwise or counterclockwise; wherein ultrasonic sensors are respectively installed on both sides of the cleaning robot for detecting the type of ground medium in the area on both sides of the walking direction of the cleaning robot.
[0017] Furthermore, step S4 also includes: before the cleaning robot walks to the repositioning starting position, the cleaning robot walks in the carpet partition to be cleaned, and when the intensity of the ultrasonic reflection signal received by the ultrasonic sensor is not within the preset intensity threshold range, the cleaning robot determines that it has walked to the boundary line where the repositioning starting position is located; wherein the preset intensity threshold range is used to represent the signal intensity range of the ultrasonic reflection signal fed back by the carpet partition; wherein the corner point and the repositioning starting point are located on the same boundary line of the carpet partition to be cleaned; obstacles are allowed to exist at the corner point, so that the corner point is located at the end position of the corner area or the gap.
[0018] Furthermore, when the cleaning robot walks in the carpet partition to be cleaned, the cleaning robot controls the ultrasonic sensor to emit ultrasonic waves and receive ultrasonic reflection signals, and controls the inertial sensor to measure the posture angle of the cleaning robot, but stops marking the grids of the global map; when the cleaning robot uses the posture information of the corner points to update the current posture information of the cleaning robot, the cleaning robot walks to the hard ground area, and at the same time the cleaning robot obtains its posture information, and marks it in the global map as the grid corresponding to the current position of the cleaning robot.
[0019] For cleaning robots working in a floor environment with carpet, the present application uses ultrasonic sensors to detect whether the material is carpet or hard floor. As the cleaning robot walks around the carpet, it can mark the boundary lines of the carpet in sequence to gradually enclose each carpet partition, and divide the boundaries between the carpet partition and the hard floor area. After traversing an entire hard floor area, the robot divides it into multiple carpet partitions, ensuring that the robot completely and non-repetitively covers and cleans the hard floor area according to the preset planned path without entering any carpet partition. The cleaning robot is not affected by slipping or idling on the carpet, reducing missed cleaning and repeated cleaning of the floor environment outside the carpet.
[0020] After covering and cleaning the hard floor area, the cleaning robot will decide whether to traverse the carpet partition based on the ratio of the area of the carpet partition to the area of the hard floor area. When starting to traverse the carpet area, it can adopt a random walk method without updating the map, and it does not necessarily cover the carpet partition completely, but will reposition and exit the carpet partition after a certain cleaning time.
[0021] Among them, when the carpet partition to be cleaned defined in this application is a carpet-covered area in a room area, this application relies on inertial sensors and ultrasonic sensors to perform cleaning operations with a large coverage area within an appropriate time in each carpet partition, without the need for mapping and positioning, and without the need for path planning, thereby reducing the mapping and positioning error caused by the robot's drive wheel slipping, thereby overcoming the impact of the slip factor caused by the carpet, and avoiding the impact of the drift error accumulated by the cleaning robot's inertial sensor on the carpet surface. However, it will eventually traverse the carpet, considering the cleaning of the carpet but not the complete cleaning of the carpet, but the complete cleaning of the hard floor area outside the carpet. Therefore, while considering the robot slip factor caused by the carpet, the cleaning coverage rate of the hard floor is also taken into account.
[0022] After completing a predetermined traversal period within a carpet zone, the cleaning robot retrieves edge position information to reposition itself back to its current location and then exits the carpet. When the robot returns to the hard floor area from this repositioned location, it can continue to accurately determine its real-time position using sensors or pre-established maps. Furthermore, the robot can reposition itself relatively accurately at the corners of each carpet zone, allowing it to move from a previously traversed zone to an untraversed zone within a reasonable distance or return to the hard floor area, effectively traversing all carpet zones within the indoor environment. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] Figure 1 The present invention discloses a flow chart of a method for ground environment motion planning based on ultrasound according to an embodiment of the present invention. DETAILED DESCRIPTION
[0024] The technical solutions in the embodiments of the present invention will be described in detail below in conjunction with the accompanying drawings in the embodiments of the present invention. In the following description, specific details such as specific system structures and technologies are provided for the purpose of illustration rather than limitation, so as to provide a thorough understanding of the embodiments of the present application. However, it should be clear to those skilled in the art that the present application can also be implemented in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted to prevent unnecessary details from obstructing the description of the present application.
[0025] Should be understood that, when used in the present application, the term "comprising" indicates the existence of described features, integral bodies, steps, operations, elements and / or components, but does not exclude the existence or addition of one or more other features, integral bodies, steps, operations, elements, components and / or their sets. It should also be understood that the term "and / or" used in the present application refers to any combination and all possible combinations of one or more of the items listed in association, and includes these combinations. As used in the present application, the term "if" can be interpreted as "when ... " or "once" or "in response to determining" or "in response to detecting" according to the context. Similarly, the phrase "if determining" or "if detecting [described conditions or events]" can be interpreted as meaning "once determining" or "in response to determining" or "once detecting [described conditions or events]" or "in response to detecting [described conditions or events]" according to the context.
[0026] The robot senses changes in the walking environment, mainly when it detects changes in the walking environment such as entering the carpet from the floor or entering the floor from the carpet during walking. The robot's drive wheels may slip or idle, which is inconsistent with the mileage distance actually measured by the encoder, resulting in deviations in the displacement calculation. Among them, the walking ground environment includes carpets and floors, which causes the robot's drive wheels to be at risk of slipping, resulting in deviations between the map established by the robot and the actual environment map. When the global map is subsequently used for navigation, it cannot be ensured that the robot stays on the given route and / or reaches the specified position, resulting in errors in the robot's displacement distance calculation results.
[0027] During the operation of a sweeping robot, complex factors such as wheel slippage can cause errors in the gyroscope and encoder. If these errors are not corrected, the robot will gradually deviate from its path. When the robot is in a normal state, its drive wheels drive the robot's movement, meaning the measured mileage is consistent with the robot's actual displacement. If the robot's drive wheels are rotating while its actual displacement remains unchanged, the measured mileage will differ from its actual displacement, indicating that the robot is slipping. Generally, the measured mileage will be greater than the robot's actual displacement.
[0028] Therefore, the slip error can be manifested as the current position of the cleaning robot being easily marked as offset to the adjacent hard floor area in the global map when on the carpet, and the adjacent hard floor area is marked as the cleaned area (traversed area), resulting in the adjacent hard floor area that is offset being missed; or when leaving the carpet partition and entering the hard floor area, the current position of the cleaning robot is easily marked as offset back to the carpet partition in the global map, and the current hard floor area is marked as the uncleaned area (untraversed area), resulting in the hard floor area currently being cleaned being cleaned repeatedly.
[0029] For example, when the robot is walking on a carpet, the driving wheels slip, so the mileage of the driving wheels measured by the robot is not equal to the actual displacement of the robot. When the current position of the robot marked in the map is already outside the carpet and deviates from the center position of the carpet by a first preset distance, but in fact the robot is still inside the carpet, only the driving wheels are rotating, and the actual displacement of the robot has not reached the hard ground outside the carpet, the area between the current position of the robot marked in the map and the boundary line of the carpet will be marked as the cleaned area, but in fact it has not been cleaned and covered by the robot. When the robot actually walks to the hard ground outside the carpet, the current position of the robot marked in the map deviates from the center position of the carpet by a second preset distance, and the second preset distance is smaller than the first preset distance. Therefore, the area between the current position of the robot and the center position of the carpet will be marked as the cleaned area in the map, and the area between the current position of the robot and the position with the first preset distance from the center position of the carpet will be marked as the uncleaned area in the same map. However, the area between the position with the second preset distance from the center position of the carpet and the position with the first preset distance from the center position of the carpet has actually been traversed by the robot. Subsequently, in the hard ground cleaning planning process, this part of the area is repeatedly cleaned, causing the carpet slip error to spread to the hard ground area.
[0030] Those skilled in the art will know that the ultrasonic sensor can continuously collect ultrasonic data of the detection space area at intervals of 6ms, and the cleaning robot can convert the area position coordinate information detected by the ultrasonic sensor into a global map, which can be a three-dimensional map represented by voxels or projected into a two-dimensional grid map. The detection space area generated by the ultrasonic sensor is formed by the ultrasonic transmission and emission angle and the maximum detection distance constraint, and preferably constitutes a conical area range. Among them, the intensity of the measurement signal returned by the ultrasonic reflection signal includes the ultrasonic signal intensity of the obstacle surface closest to the ultrasonic sensor and the ground medium within the conical area. The power level is generally used to represent it. The surface medium type can be distinguished according to the intensity of the ultrasonic signal. Specifically, the carpet area and the hard floor area can be distinguished, and the dividing line between the carpet area and the hard floor area is determined. The dividing line can be regarded as the boundary line of the carpet area. The measurement signal returned by the reflected ultrasonic signal also includes the distance measurement value of the carpet edge point closest to the ultrasonic sensor within the conical area. It can also be the distance information fed back by the ultrasonic projection area on the obstacle surface. Because ultrasonic waves are always at a certain angle, such as forming a 10-degree cone area, the point cloud information corresponding to a certain area can be obtained, and a collection of distance information can be obtained.
[0031] The embodiments of the present application disclose a method for planning motion in a ground environment based on ultrasound. The method is applicable to a cleaning robot equipped with an ultrasonic sensor. Considering the high cost of laser sensors and visual sensors, the cleaning robot may also be equipped with an inertial sensor for navigation and positioning. The ultrasonic sensor is mounted in front of the bottom of the cleaning robot, allowing the cleaning robot to detect the carpet in front as quickly as possible during walking. Preferably, at least one ultrasonic sensor is mounted on each side of the bottom of the cleaning robot, and each ultrasonic sensor may be at a vertical distance of 2 cm to 3 cm from the central axis of the cleaning robot. The central axis of the cleaning robot is parallel to the walking direction of the cleaning robot. The cleaning robot may be a disc-shaped sweeping robot, and its outer shell is constructed to have a certain body diameter.
[0032] As an example, Figure 1 As shown, a ground environment motion planning method based on ultrasound is disclosed, and the specific steps of the ground environment motion planning method include:
[0033] Step S1: The cleaning robot detects at least one carpet partition based on the strength of the detection signal received by the ultrasonic sensor. The at least one carpet partition is at least one carpet laid in an indoor environment, or may be a carpet area laid in at least one room area in the same indoor environment (a carpet may be laid in each room area). The cleaning robot then walks in a passable area outside the detected carpet partition and, based on the position information collected by the inertial sensor, marks a grid in a global map in the area outside the detected carpet partition to construct a map. In the global map, the area of the carpet partition can be calculated sequentially based on the boundary lines of the detected carpet partitions, surrounded by the outline of the area outside the carpet partition. Each time a carpet partition is detected, the area of the carpet partition is calculated, and the calculation method can be determined based on the length of the boundary line and the shape of the figure enclosed by the boundary line. The detected carpet partition can share a common boundary line with the passable area outside the carpet partition, that is, a boundary line is set between each carpet partition and the hard floor area to mark it as the boundary line of the corresponding carpet partition. The robot can adjust its walking direction to avoid entering any detected carpet partition until the cleaning robot has walked through the passable area other than the detected carpet partition in the indoor environment to clean the hard floor area, and calculates the area of the hard floor area. In the process of the cleaning robot traversing the hard floor area, the hard floor area is cleaned according to a preset planned path, such as cleaning the walking position according to a bow-shaped path or other paths that bend back and forth, including the cleaning robot controlling the cleaning brush at the bottom of the body to clean the floor and using the dust suction device at the bottom of the body to perform dust suction operations, so as to fully cover the hard floor area through the preset planned path; then execute step S2, instead of continuing to walk in the passable area other than the detected carpet partition, wherein the cleaning robot marks the passable area other than the detected carpet partition in the indoor environment as a hard floor area, that is, the passable area outside all carpet partitions in the indoor environment is a floor area where the floor medium is different from the carpet. In this embodiment, the floor area of this floor medium type is regarded as a hard floor area.
[0034] In step S2, the cleaning robot selects carpet zones to be cleaned from the carpet zones detected in step S1 based on the ratio of the area of the carpet zones to the area of the hard floor. Generally, the ratio of the area of each carpet zone to the area of the hard floor is calculated after the cleaning robot has completed its traversal of the hard floor area. By comparing this ratio with a preset ratio, the cleaning robot identifies carpet zones with reasonable area coverage within the same indoor environment (within the same room area) as the carpet zones to be cleaned. This facilitates the cleaning robot's ability to cover the carpet, but not necessarily completely. Based on this, the cleaning robot sets a standard cleaning time within the carpet zones to be cleaned based on their area, and then proceeds to step S3. The standard cleaning time is specifically related to the size and speed of the cleaning robot. Under ideal conditions, the cleaning robot, while traversing a pre-planned path without slipping, should be able to clean the carpet zones within the standard cleaning time.
[0035] It should be noted that the same indoor environment or the same room area may include multiple carpet partitions; a carpet partition or a carpet partition to be cleaned is a closed area formed by connecting its boundary points. A carpet partition is a closed area, and a closed area is equivalent to a closed area; the boundary points of each carpet partition can also be regarded as the boundary points of the hard ground area bordering it; the carpet partition is represented in the global map as a plurality of closed grid areas surrounded by grids corresponding to the boundary points; it should be noted that, in this embodiment, whenever the cleaning robot walks to a position point, it is determined that the cleaning robot has traversed to the position point, and the position point is set as a traversed position point, and the grid corresponding to the position point is marked as a traversed grid in the global map. By traversing each grid one by one, the cleaning robot can mark a single traversed area.
[0036] In step S3, the cleaning robot enters a currently selected carpet zone to be cleaned from the hard floor area. During the first execution of step S3, after traversing the hard floor area, the cleaning robot enters a currently selected carpet zone to be cleaned. The entry action here simply involves navigating to the carpet zone to be cleaned along the prescribed path, without performing any cleaning operations along the way (i.e., the hard floor area is not repeatedly cleaned). The currently selected carpet zone to be cleaned is one of the carpet zones to be cleaned selected in step S2. During subsequent executions of step S3, the cleaning robot may repeatedly traverse the hard floor area and then enter an untraversed carpet zone to be cleaned from a point within the hard floor area. This may be the currently selected carpet zone to be cleaned that was updated based on the relocated current position in step S4, and is also an untraversed carpet zone among all carpet zones to be cleaned selected in step S2. The cleaning robot then maintains its movement within the same carpet zone to be cleaned (the zone it entered in step S3). While moving within the zone, the robot continues to clean it, including controlling the cleaning brush on the bottom of the robot body to randomly sweep the floor and using the vacuum device on the bottom of the robot body to perform vacuuming operations, thereby cleaning the zone along a pre-planned path. This continues until the time spent traveling within the zone reaches the standard cleaning time, at which point the robot executes step S4. Preferably, the robot determines a target starting point and a zone to be cleaned based on its current location. The robot then moves from the target starting point to the interior of the zone to be cleaned.
[0037] Preferably, in step S3, considering that the cleaning robot is prone to slipping when walking on the carpet surface, the cleaning robot does not walk according to the preset planned path, but traverses the carpet partition to be cleaned in a random walking manner, and can start from a preset walking starting point and perform cleaning operations in a random walking direction within the carpet partition to be cleaned, wherein the movement speed of the cleaning robot can be fixed, and the cleaning robot is not allowed to walk out of the carpet partition to be cleaned; until the time spent by the cleaning robot walking (cleaning) in the carpet partition to be cleaned reaches the standard cleaning time.
[0038] Step S4, after the walking time of the carpet partition to be cleaned described in step S3 reaches the standard cleaning time, the cleaning robot starts to walk along the boundary line of the carpet partition to be cleaned and extracts the corner information of the carpet partition to be cleaned. Preferably, the walking direction is adjusted to control the cleaning robot to walk in a state where the two ultrasonic sensors are separated on both sides of the boundary line of the carpet partition to be cleaned, specifically, the ultrasonic sensors on the left and right sides of the central axis of the cleaning robot are separated on both sides of the boundary line of the carpet partition to be cleaned, so that the cleaning robot walks along the boundary line of the carpet partition to be cleaned. Then, based on the extracted corner information of the carpet partition to be cleaned, the posture information of the cleaning robot is repositioned to update the current position of the cleaning robot, that is, the posture information of the repositioned cleaning robot is used to update the current position of the cleaning robot; in some embodiments, there will be some relatively obvious environmental features in the corner information of the carpet partition to be cleaned, such as gaps in the outline of the carpet partition to be cleaned; when the carpet partition to be cleaned is a rectangular area or a combination of rectangular areas, there will also be some relatively obvious boundary features, such as right-angle features in the outline of the carpet partition to be cleaned; the cleaning robot can accurately locate the current position of the cleaning robot in the carpet partition to be cleaned by extracting the relevant type of corner point information, and reposition the cleaning robot before exiting the carpet partition to be cleaned, wherein the corner point information is the endpoint of the boundary line that encloses the carpet partition to be cleaned, and after the cleaning robot completely covers the hard ground area, it has been marked in the global map and saved in the memory of the cleaning robot.
[0039] In summary, for cleaning robots working in a floor environment with carpet, the present application uses ultrasonic sensors to detect whether the material is carpet or hard floor. As the cleaning robot walks around the carpet, the boundary lines of the carpet can be marked in sequence to gradually enclose the carpet partitions, and the boundaries between the carpet partitions and the hard floor areas can be divided. After traversing an entire hard floor area, the robot divides the area into multiple carpet partitions, ensuring that the robot completely and non-repetitively covers and cleans the hard floor area according to the preset planned path without entering any carpet partition. The cleaning robot is not affected by slipping or idling on the carpet, reducing missed cleaning and repeated cleaning of the hard floor environment outside the carpet.
[0040] On the basis of the above embodiment, when the cleaning robot executes step S3 for the first time, the cleaning robot has walked through the hard floor area and has determined the various carpet partitions to be cleaned. Then, before the cleaning robot enters the carpet partition to be cleaned, it selects the carpet partition to be cleaned that is closest to the current position of the cleaning robot as the currently screened carpet partition to be cleaned, which can be marked in the global map. At this time, it is still in the process of executing step S3 for the first time, and the cleaning robot is still located in the hard floor area. Then, the cleaning robot starts to enter the currently screened carpet partition to be cleaned from its current position, and keeps walking in the currently screened carpet partition to be cleaned, and then step S4 can be executed.
[0041] On the basis of the above embodiment, the step S4 further includes: before the cleaning robot leaves the carpet partition to be cleaned, the cleaning robot selects an untraversed carpet partition to be cleaned that is closest to the updated current position and updates it as the currently filtered carpet partition to be cleaned, which is equivalent to repeatedly executing step S3 to select the carpet partition to be cleaned that is closest to the current position of the cleaning robot and set it as the currently filtered carpet partition to be cleaned, forming the next traversed carpet partition to be cleaned, which belongs to the untraversed carpet partition to be cleaned; then the cleaning robot repeatedly executes steps S3 and S4 disclosed in the above embodiment until the cleaning robot traverses each carpet partition to be cleaned in turn and determines that the cleaning robot has traversed all carpet partitions to be cleaned filtered out in step S2; wherein, in the process of walking from a traversed carpet partition to be cleaned to an untraversed carpet partition to be cleaned, the cleaning robot may pass through a hard ground area, but does not pass through the other traversed areas to be cleaned, and does not clean before entering the untraversed carpet partition to be cleaned. After completing a predetermined traversal period within a carpet zone, the cleaning robot retrieves edge position information to reposition itself back to its current location and then exits the carpet. When the robot returns to the hard floor area from this repositioned location, it can continue to accurately determine its real-time position using sensors or pre-established maps. Furthermore, the robot can reposition itself relatively accurately at the corners of each carpet zone, allowing it to move from a previously traversed zone to an untraversed zone within a reasonable distance or return to the hard floor area, effectively traversing all carpet zones within the indoor environment.
[0042] Due to the slipping factor caused by the carpet medium, it is not necessarily guaranteed that the cleaning robot can completely clean and cover the entire area of a single carpet partition to be cleaned, and the carpet partition to be cleaned is the carpet partition screened based on the area ratio set in step S2, not all carpet partitions detected in the same indoor environment in step S1. Therefore, the cleaning robot does not traverse all carpet partitions and may only clean part of the area of some carpet partitions in the same indoor environment; then the cleaning robot returns to the hard floor area, and the cleaning robot has completely cleaned and covered the entire hard floor area, so there is no need to traverse the hard floor area again. Cleaning; and after returning from the carpet partition to be cleaned to the hard floor area, it can rely on the corner information extracted at the boundary line of the carpet partition to be cleaned to reposition the posture information of the cleaning robot to obtain a relatively accurate current position, overcome the slip error accumulated when the cleaning robot walks in the carpet partition to be cleaned, so that the current position positioned by the cleaning robot after returning from the boundary line of the carpet partition to be cleaned to the hard floor area is relatively accurate, that is, the current position of the cleaning robot in the hard floor area calculated based on the posture information of the cleaning robot repositioned at the boundary line of the carpet partition to be cleaned is also relatively accurate.
[0043] In summary, after completing the standard cleaning time within a carpet partition, the cleaning robot repositions itself to its current position by extracting edge position information and then exiting the carpet. When the cleaning robot returns to the hard floor area from this repositioned current position, it can continue to relatively accurately locate its real-time position using sensors or a pre-established map. Furthermore, relatively accurate body positioning information can be repositioned at the corners of each carpet partition, allowing the robot to move from a previously traversed carpet partition to an untraversed carpet partition of reasonable distance or return to the hard floor area, thereby orderly traversing all carpet partitions in the indoor environment.
[0044] It should be noted that the global map is composed of multiple lines and multiple points and can be regarded as a contour map; wherein the lines enclose one or more connected areas. The connected area in the global map represents the traversable area corresponding to the connected area in the real environment, such as an open area in a room. If the cleaning robot has cleaned a certain area for a preset time period, the cleaning path of the cleaning robot is mapped to the connected area (which can also be represented as a traversable area) corresponding to the area in the global map, that is, the area has a historical cleaning path in the connected area corresponding to the global map, or the connected area corresponding to the area in the global map is marked as a cleaned area or a traversed area. Here, whether the connected area is an uncleaned area indicates whether the area corresponding to the connected area in the indoor environment is an uncleaved area, and the cleaning robot cleaning in the connected area indicates that the cleaning robot cleans the area corresponding to the connected area in the indoor environment.
[0045] In an embodiment of the present application, the carpet partition, the carpet partition to be cleaned, and the hard floor area are all traversable areas, namely, the aforementioned connected areas; the distance from the current position point (also denoted as the current position) to the connected area may refer to the minimum distance from the current position point (also denoted as the current position) to the boundary point of the connected area; further, the distance from the same current position to each carpet partition to be cleaned has a minimum distance corresponding to a numerical value; the length of the path from the current position point to the connected area may refer to the length of the reachable path with the minimum length from the current position point to the boundary point of the connected area.
[0046] As an embodiment, with respect to the specific method for selecting the carpet partitions to be cleaned in step S2 disclosed in the aforementioned embodiment, the method for selecting the carpet partitions to be cleaned from the carpet partitions detected in step S1 based on the ratio of the area of the carpet partitions to the area of the hard floor area includes:
[0047] Whenever the cleaning robot determines whether the ratio of the area of a carpet partition calculated in step S1 to the area of the hard floor area is within the preset coverage ratio range, if so, the carpet partition is set as the carpet partition to be cleaned and the cleaning robot determines to screen out one of the carpet partitions to be cleaned from the carpet partitions detected in step S1; otherwise, the carpet partition is set as a prohibited cleaning partition so that the cleaning robot does not traverse the carpet partition; in this embodiment, the preset coverage ratio range is used to describe the layout of the carpet partitions that the cleaning robot is allowed to walk on and the hard floor areas in the same indoor environment, specifically involving the ratio of the coverage area size of the carpet partitions that the cleaning robot is allowed to traverse in the same indoor environment to the coverage area size of the hard floor areas in the same indoor environment. Wherein, if the area of the prohibited cleaning zone is smaller than the area of the carpet zone to be cleaned, the preset coverage ratio range is equivalent to a ratio greater than a preset lower limit value; the area of the hard floor area can be used as a reference area, and the ratio of the area of a carpet zone to the area of the hard floor area can be used to describe the layout of carpets and hard floors in the same indoor environment. The preset coverage ratio range is used to determine whether the cleaning robot should traverse the carpet zones in this layout environment or whether the carpet zones should be ignored, thereby extracting the carpet zones that need to be cleaned in the corresponding indoor environment. In this embodiment, the carpet zones that need to be cleaned are large enough, especially relatively large relative to the hard floor areas in the same indoor environment. If the cleaning robot detects a relatively small carpet zone, especially relatively small relative to the hard floor areas in the same indoor environment, the cleaning robot does not need to cover and clean it and can directly ignore the carpet zone.
[0048] For example, in a room, there is a carpet and a hard floor area, with the carpet surrounded by the hard floor area. If the area of the carpet area is 6 square meters and the area of the hard floor area is 10 square meters, and the preset coverage ratio range is set to a ratio range greater than 0.1, then because the ratio of the area of the carpet area to the area of the hard floor area is 0.6, which is within the preset coverage ratio range, the cleaning robot sets the carpet area in the room as the carpet area to be cleaned. This allows the cleaning robot to enter the carpet area with a larger area after traversing the hard floor area in the room to perform cleaning operations. Compared to the carpet area with an area ratio of less than 0.1 to the hard floor area, the cleaning robot can achieve a certain degree of coverage and cleaning in the carpet area with an area ratio greater than 0.1 to the hard floor area. Generally speaking, in the same room, the more carpets are covered, the smaller the area of the hard floor area. The sum of the areas of all carpets and the hard floor areas in the same room is fixed.
[0049] It is worth noting that within the same room area, the smaller the area of the carpet partition, the more obvious the reduction in area relative to the hard floor area, the more severely the cleaning robot will be affected by slipping factors when walking in the carpet partition, and it will be difficult to use ultrasonic sensors to detect the boundary line of the carpet area. For example, if the area of the carpet partition is much smaller than the coverage area of the cleaning robot's body, it will be difficult for the cleaning robot to detect contour features such as the boundary points of the carpet partition. If the area of the carpet partition is 1 square meter, the area of the hard floor area is 30 square meters, and the preset coverage ratio range is set to a ratio range greater than 0.1, then since the ratio of the area of the carpet partition to the area of the hard floor area is less than 0.1, it is not within the preset coverage ratio range, so the cleaning robot sets this relatively small carpet partition in the room area as a prohibited cleaning partition to prevent the cleaning robot from walking in the carpet partition and avoid causing serious slip errors. The slip error can be manifested as the current position of the cleaning robot being easily marked as offset to the adjacent hard floor area in the global map when on the carpet partition, which will cause the offset adjacent hard floor area to be missed; or when leaving the carpet partition and entering the hard floor area, the current position of the cleaning robot is easily marked as offset back to the carpet partition, which will cause the currently cleaned hard floor area to be cleaned repeatedly. Furthermore, since the area occupied by the carpet partition is relatively small in the entire room area, and the coverage of the carpet partition is much smaller than that of the hard floor area, the cleaning robot cannot extract effective boundary contour information in the carpet partition for cleaning traversal. Instead, it is easy to walk out of the carpet partition because of slipping on the carpet surface. Therefore, the cleaning robot can ignore the carpet partition in the room area and does not need to mark it as a carpet partition that needs to be traversed.
[0050] On the basis of the above embodiment, after the cleaning robot judges each carpet partition detected in step S1 in turn according to the numerical relationship between the aforementioned area ratio and the preset coverage ratio range, the cleaning robot has judged one by one whether the ratio of the area of each carpet partition detected in step S1 to the area of the same hard floor area is suitable for the cleaning robot to enter the carpet partition, and then determines that the cleaning robot can screen out all carpet partitions to be cleaned from all carpet partitions detected in step S1.
[0051] In some embodiments, there is a hard floor area and at least one carpet partition in the same indoor environment, and the surface covering medium of the hard floor area is different from the surface covering medium of the carpet partition to be cleaned; but there are no multiple hard floor areas that are not directly connected (but are connected together through adjacent carpet partitions) in the same indoor environment, that is, there are no multiple hard floor areas separated by carpet partitions, so as to prevent the cleaning robot from having to enter the carpet partition before walking from one hard floor area to another hard floor area when traversing the boundary line of the carpet partition, causing the risk of slipping and reducing the cleaning coverage rate of the hard floor area by the cleaning robot; but there are at least two carpet partitions separated by a hard floor area, and the at least two separated carpet partitions are not directly connected but are connected through the hard floor area.
[0052] It should be noted that the same indoor environment can include multiple carpet partitions. A carpet partition, or carpet partition to be cleaned, is a closed area formed by connecting its boundary points. A carpet partition is a closed area, and a closed area is equivalent to a closed area. The boundary points of each carpet partition can also be considered the boundary points of the hard floor area adjacent to the carpet partition. The carpet partition is represented in the global map as a plurality of closed grid areas surrounded by grids corresponding to the boundary points. The same indoor environment is pre-divided into multiple room areas by the cleaning robot. For example, the cleaning robot uses a ranging sensor (laser sensor) to perform a local or global scan of the indoor environment to obtain contour information. Then, based on the size characteristics of the room entrance and the distribution characteristics of the walls, it sets each room area and the boundary between the room area and the external area. It also explores the connected areas inside and outside the room area and the path that the cleaning robot can reach within the connected areas.
[0053] Furthermore, when the indoor environment layout includes multiple room areas and their connected corridor areas, at least one carpet partition can be covered in some or all of the room areas. For example, each room area is covered by at least one carpet partition, and the corridor area can also be covered by at least one carpet partition. In this case, the hard floor area in the same indoor environment is a passable area connecting all room areas and corridor areas, and is adjacent to each carpet partition, which can also be understood as being connected to each carpet partition. Therefore, the ratio of the area of a carpet partition to the area of the hard floor area calculated in step S1 is the ratio of the area of one carpet partition in a room area to the area of the hard floor area in the entire indoor environment. The lower limit of the preset coverage ratio range can be appropriately reduced, so that the cleaning robot can select more carpet partitions as carpet partitions to be cleaned in the same indoor environment, so as to adapt to the cleaning robot traversing more carpet partitions in a larger area, thereby ensuring the cleaning coverage rate of multiple large carpet partitions in an indoor environment with multiple room areas.
[0054] Of course, a single room area in the same indoor environment can also be used as a judgment unit. The ratio of the area of a carpet partition to the area of the hard floor area calculated in step S1 is the area ratio of one of the carpet partitions in a room area to the hard floor area in the same room area. The lower limit of the preset coverage ratio range can be appropriately increased, and the cleaning robot can screen out carpet partitions with a large enough area in the same room area as carpet partitions to be cleaned, so that the cleaning robot can traverse to more reasonable carpet partitions in the same room area, avoid entering carpet partitions with too small an area to cause more serious slipping, and improve the cleaning efficiency of the cleaning robot for room areas in the indoor environment.
[0055] As an embodiment, in step S1, the method in which the cleaning robot detects at least one carpet partition based on the strength of the detection signal received by the ultrasonic sensor includes:
[0056] Step S11: The cleaning robot walks in the hard ground area according to a preset planned path, that is, the cleaning robot starts to perform cleaning operations in the hard ground area, and the cleaning robot is initially placed in the hard ground area; the ultrasonic sensor is controlled to emit ultrasonic waves and receive ultrasonic reflection signals, and the inertial sensor is controlled to measure the attitude angle of the cleaning robot. When the inertial sensor is a gyroscope, the yaw angle of the cleaning robot can be measured in real time to indicate the forward direction of the cleaning robot; whenever a carpet partition and / or a hard ground area is detected on the ground where the cleaning robot is walking, the corresponding grid is marked in the global map, and the grid is assigned relevant ground medium type information and the posture information of the cleaning robot;
[0057] Step S12: When the intensity of the ultrasonic reflection signal received by the ultrasonic sensor is within the preset intensity threshold range, the cleaning robot detects the carpet as a material and can also distinguish the hard floor area adjacent to the carpet. Since the cleaning robot has been walking in the hard floor area, the beginning of detecting the carpet means detecting the boundary position of the carpet. Therefore, the position point where the cleaning robot currently detects the carpet (the current position located by the cleaning robot) is marked as the boundary point of the carpet, and the grid corresponding to the boundary point of the carpet is marked in the global map. At the same time, the walking direction is adjusted so that the cleaning robot does not enter the carpet, so that the robot avoids the carpet surface in time, reduces the occurrence of slipping of the robot, and especially prevents the effect of the slipping walking distance from extending to the hard floor area, thereby ensuring the cleaning coverage rate of the cleaning robot in the hard floor area. In this way, if the cleaning robot continues to detect the carpet without entering the carpet, this embodiment will mark the location point where the cleaning robot detects the carpet as the boundary point of the carpet; wherein the boundary points of the carpet are connected into a boundary line, and the closed area formed by the boundary line is configured as a carpet partition, which can be regarded as the boundary line of the carpet forming a carpet partition in the hard floor area and allowing it to be closed by the hard floor area, until the cleaning robot has walked through the hard floor area in the indoor environment, and the cleaning robot can regard the hard floor area it has walked through as a closed area.
[0058] It should be noted that the intensity of the ultrasonic reflection signal is the intensity of the detection signal received by the ultrasonic sensor. The cleaning robot distinguishes between carpet partitions and hard ground areas within a signal intensity range of the ultrasonic reflection signal, wherein the carpet partition is an area where a medium with a flexible surface is laid, and the cleaning robot is prone to slipping when walking on the surface of the carpet partition. It is worth noting that before the cleaning robot starts walking, it first detects the type of ground medium in front of the walking ground through an ultrasonic sensor, such as detecting whether there is a carpet in the area in front of the cleaning robot. When no carpet is detected, the cleaning robot will perform bow-shaped cleaning. At the same time, the cleaning robot maintains the information measured by the inertial sensor, including the displacement information measured by the odometer and the angle information measured by the gyroscope to calculate the posture information to synchronously build a map. Since the cleaning robot will make a slip judgment during normal navigation walking.
[0059] For step S1, the specific implementation method includes:
[0060] While the cleaning robot is navigating a hard floor area, or before it begins navigating a hard floor area, it controls an ultrasonic sensor to emit ultrasonic waves and receive reflected ultrasonic signals, while also controlling an inertial sensor to measure the robot's attitude angle. The ultrasonic sensor transmits ultrasonic waves to the floor surface to determine the type of flooring, thereby determining the coverage of carpet partitions and hard floor areas, including their boundaries. Compared to traditional laser detection, this method is less expensive and unaffected by light interference. Combined with the angular information from the inertial sensor, this method makes the detection process more stable. Inertial sensors are devices that respond to physical movement, such as linear displacement or angular rotation, but do not actively emit various light detection signals. This allows the robot to adapt to complex and diverse indoor lighting environments. If the intensity of the reflected ultrasonic signal received by the ultrasonic sensor is not within a preset intensity threshold, the robot detects a hard floor area instead of a carpet partition and remains within the hard floor area. Within the tolerance range, the robot avoids obstacles and chooses to navigate directly along the pre-planned path within the horizontal hard floor area. It should be noted that the ultrasonic sensor returns ultrasonic signals of varying intensities based on the surface density of the cleaning object. The value within the preset intensity threshold is related to the medium type of the carpet surface. When the intensity of the ultrasonic reflection signal received by the ultrasonic sensor falls within a preset intensity threshold, the cleaning robot detects the presence of a carpet on the surface of the area ahead. Since the cleaning robot has been traversing a hard floor area, the detection of a carpet partition can be considered as the detection of the carpet partition's boundary, i.e., the boundary line between the hard floor area and the adjacent carpet partition. The grids corresponding to the points where the boundary line passes are marked on the global map. The boundary line is a point on the edge of the carpet partition, or can also be understood as a point on the contour line of the planar area covered by the carpet. It can be derived from the point cloud information received by the ultrasonic sensor, specifically, by converting distance measurement information fed back by the ultrasonic reflection signal from the surface of the carpet partition. In this embodiment, the cleaning robot marks the currently detected carpet partition as an untraversed area, i.e., an area that the cleaning robot has not prioritized traversal. The currently detected carpet partition does not necessarily represent the entire area of the actual environment, but can consist of one or more grids, or multiple isolated blocks. The grids corresponding to the boundary points of the carpet partition are marked with carpet information, for example, by having the grids mark carpet information.
[0061] Whenever the cleaning robot detects a carpet partition, the cleaning robot adjusts its walking direction so that the cleaning robot does not enter the carpet partition and walks in the passable area outside the currently detected carpet partition. In some embodiments, the cleaning robot may touch the boundary point of the carpet partition. At this time, the cleaning robot may not walk according to the preset planned path, but must adjust its walking direction to leave the currently detected carpet partition.
[0062] In this embodiment, carpet zones are distinct from hard surface areas (conventional cement pavement) and are both considered traversable areas for cleaning by the cleaning robot. When navigating carpet zones, the cleaning robot experiences a continuous jolting motion. Optionally, at each boundary point of a carpet zone, the cleaning robot can determine whether it is at the boundary of the carpet zone or before the carpet zone (actually, in an adjacent hard surface area) based on ultrasonic data collected by the robot's ultrasonic sensor at that location and preset carpet ultrasonic data. The cleaning robot's chassis is equipped with ultrasonic sensors that can collect different ultrasonic data for different road surface areas. The preset carpet ultrasonic data can be predetermined. For example, carpets of different materials can be purchased in advance for use in room or corridor scenarios. The cleaning robot can then navigate the carpeted, traversable surface, and the carpet surface and corresponding ultrasonic data can be stored together to establish a carpet ultrasonic database. The ultrasonic data stored in the carpet ultrasonic database must all fall within a preset intensity threshold. Therefore, when the cleaning robot collects ultrasonic data at this location, it can match the ultrasonic data with the preset carpet ultrasonic data in the carpet ultrasonic database. If there is consistent preset carpet ultrasonic data or the preset intensity threshold range, the carpet partition can be detected and the boundary between the carpet and the hard floor can be determined.
[0063] It should be noted that, in this embodiment, the distance and angle measured by the inertial sensor can be converted into the same global coordinate system to assist in constructing a global map. The global map can be in the form of a coordinate bitmap, which is a global grid map and is pre-stored in the robot's memory. The marked related areas are all represented by grids; wherein, the coordinates of the corner points (the upper left point, lower left point, upper right point and lower right point of a grid) and the center point of each grid can represent the coordinates of the grid. The position point that the robot actually walks through or the position point in front of it detected by the ultrasonic sensor can correspond to the corner point or center point of a grid, and the grid corresponding to the corner point or center point can be regarded as the grid corresponding to the position point.
[0064] For step S12, an embodiment specifically includes: whenever the cleaning robot detects a carpet, i.e., identifies the boundary of the currently detected carpet partition, and the cleaning robot is still in the hard floor area, the cleaning robot may stop walking along the preset planned path, and then walk along the currently detected carpet boundary line to the area outside the carpet (i.e., the hard floor area) without entering the currently detected carpet. If the walking direction of the currently detected preset planned path is parallel to the currently detected carpet boundary line, the cleaning robot continues walking along the preset planned path along the currently detected carpet boundary line until the cleaning robot crosses the carpet boundary line and enters the carpet according to the preset planned path, and then adjusts its walking direction to avoid entering the carpet partition. The cleaning robot may then choose to walk a circle along the currently detected carpet boundary line to demarcate a carpet partition. Whether to walk a circle may be determined by angle information measured by a built-in gyroscope of the cleaning robot. In this way, a carpet partition can be demarcated within the same room area or a carpet partition can be planned in an indoor environment having multiple room areas and corridors, wherein a portion of the hard floor area adjacent to the carpet partition is also simultaneously determined. If the cleaning robot detects that the intensity of the ultrasonic reflection signal reflected from the first side area of the boundary line is within a preset intensity threshold range while walking along the boundary line of the currently detected carpet, and the intensity of the ultrasonic reflection signal reflected from the second side area of the same boundary line is not within the preset intensity threshold range, then the cleaning robot determines that the currently detected boundary line of the carpet encloses a carpet partition, forming a closed area, and sequentially marks the grids corresponding to the boundary points of the carpet in the global map to form an outline map of the carpet partition, and determines that the cleaning robot has detected a carpet partition. At the same time, the inertial sensor is used to measure whether the cleaning robot has walked along the boundary line. For example, a gyroscope is used to measure whether the cleaning robot has rotated 360 degrees to determine whether the cleaning robot has walked along the carpet partition. The boundary line of the carpet partition is the boundary line of the carpet, enclosing a closed area. At the same time, it can also be determined that the adjacent hard floor area surrounds the carpet partition accordingly. When the carpet partition is a carpet with a regular geometric shape, the carpet partition is enclosed by multiple straight line boundaries.Then the cleaning robot walks to the untraversed area according to the preset planned path and keeps away from the carpet, and repeats step S11 and step S12 in the process of walking in the hard floor area to continue to detect new carpet partitions. It can detect multiple carpet partitions in the same room area, or detect carpet partitions in multiple room areas in turn, and keep doing so until the hard floor area is traversed to complete the coverage of the hard floor area; wherein, the global map is a grid map, which is cached in the memory of the cleaning robot; at least two ultrasonic sensors are installed at the bottom of the cleaning robot to detect the ground medium type of the area on both sides of the walking direction of the cleaning robot, specifically the ground medium type on both sides of the boundary line of the carpet partition, which can also be regarded as the inside and outside of the carpet.
[0065] Preferably, the first side area of the boundary line may be the left side area of the currently detected carpet boundary line (the inner area of the carpet), and the second side area of the boundary line may be the right side area of the currently detected carpet boundary line (the outer area of the carpet, belonging to the hard floor area). To improve detection accuracy, an ultrasonic sensor for detecting ultrasonic reflection signals reflected from the first side area of the boundary line and an ultrasonic sensor for detecting ultrasonic reflection signals reflected from the second side area of the boundary line are respectively mounted on the left and right sides of the cleaning robot, for example, in front of the left and right sides of the central axis of the cleaning robot. Thus, during a complete traverse along the currently detected carpet boundary line, the two ultrasonic sensors of the cleaning robot can be positioned on either side of the boundary line of the carpet partition. However, whenever the intensities of the ultrasonic reflection signals detected by the two ultrasonic sensors of the cleaning robot are within a preset intensity threshold range, the cleaning robot may begin to enter the carpet partition. The cleaning robot then adjusts its traverse direction to avoid entering the carpet partition, and simultaneously detects the ultrasonic reflection signals reflected from the carpet partition by the ultrasonic sensor mounted on one side of the cleaning robot, while detecting the ultrasonic reflection signals reflected from the hard floor area by the ultrasonic sensor mounted on the other side of the cleaning robot, to maintain a complete traverse along the currently detected carpet boundary line.
[0066] Preferably, the carpet partition is an area covered by a carpet. A carpet partition can be a rectangular carpet area or a carpet of other shapes. The shape here refers to the horizontal plane shape of the relevant area. When the carpet is covered in an indoor environment, the shape of each carpet partition can be associated with the plane shape of the room it actually covers. The grid corresponding to the boundary points of each carpet partition is marked on the global map, and the location information and medium information are marked in the corresponding grid of the global map. Two carpet partitions can be isolated and located in different room areas, where each carpet partition is marked as a closed grid area on the global map. The floor of a room area can be nearly completely covered by a carpet partition, and the shape of the carpet partition is the same as the floor shape of the room area (the shape of the area enclosed by the room boundary). For example, if a room area is composed of a large and a small connected rectangle, the shape of the carpet partition is also the shape of the combined large and small connected rectangles.
[0067] Preferably, the preset planned path is a bow-shaped path; wherein, the intensity of the ultrasonic reflection signal received by the ultrasonic sensor is the reflection signal of the ultrasonic wave in the ground environment (especially the passable area) where the cleaning robot walks, and the level signal is obtained after analog-to-digital conversion. The robot can use the digital level signal to detect the strength of the signal feedback from the surface medium, especially identify the carpet, prevent the cleaning robot from accidentally entering the carpet, and reduce the slippage of the driving wheel of the cleaning robot.
[0068] For the step S12, another embodiment is formed, which specifically includes: whenever the cleaning robot searches for a grid corresponding to an untraversed position point in the neighborhood that is not covered by the carpet in the global map, the cleaning robot first walks to the untraversed position point, and then continues to walk from the untraversed position point according to the preset planned path, but does not enter the carpet; wherein the untraversed position point is a position point that the cleaning robot has not walked to, and is represented as an untraversed grid in the global map. It can be located in the neighborhood of the current position of the cleaning robot. The points in the neighborhood can be adjacent to or connected to the current position of the cleaning robot. The neighborhood can also be regarded as a neighborhood grid area, including but not limited to the eight neighborhoods and sixteen neighborhoods of the grid corresponding to the current position of the cleaning robot. In the process of the cleaning robot walking according to the preset planned path, the cleaning robot detects the carpet partition within a signal strength range of the ultrasonic reflection signal based on the intensity of the ultrasonic reflection signal received by the ultrasonic sensor, and adjusts the walking strategy so that the cleaning robot does not enter the carpet, thereby marking the grids corresponding to the boundary points of the carpet partition. When the cleaning robot has walked through the area except the detected carpet, it is determined that the remaining untraversed area is the carpet covered area, so as to divide the outline map of the covered hard ground area and the outline map of the uncovered carpet partition in the global map; when the cleaning robot has walked through the hard ground area except the detected carpet partition, that is, when the cleaning robot has searched for the passable area outside the carpet partition in the indoor environment in the neighborhood of the latest traversed position point, it is determined that the remaining untraversed area is the carpet partition; wherein, whenever the cleaning robot walks to a position point, it is determined that the cleaning robot has traversed to the position point, and the position point is set as a traversed position point. If a cleaning operation is performed on the position, it is marked as a cleaned position, and the grid corresponding to the position point in the global map is set as a traversed grid. Grid; when the cleaning robot detects the carpet partition, it will mark the grid corresponding to the boundary point of the carpet partition in the global map, and the location information and medium information are recorded in the corresponding grid in the global map; the carpet coverage area is composed of at least one closed area formed by connecting the boundary points of the carpet, and a closed area is a carpet partition; multiple carpet partitions are discretely distributed in the global map, which can correspond to multiple rooms distributed in the same indoor environment; the boundary points of each carpet partition belong to the boundary points of the carpet coverage area; the carpet partition can be a rectangular area composed of at least one grid or multiple grids in the global map, which is convenient for determining the boundary points and center points, which is beneficial for the cleaning robot to avoid the slipping error caused by the carpet in the subsequent walking process, and prevent repeated cleaning or missed cleaning of the hard floor area.
[0069] In step S12, when the cleaning robot detects carpet partitions, it must first walk to an untraversed location, that is, it must navigate to a target point. Specifically, if the cleaning robot does not detect carpet partitions, it will first navigate to an untraversed location in the hard floor area, and then walk from this untraversed location along a preset planned path. Therefore, the cleaning robot needs to search for untraversed locations in the global map and navigate to untraversed, accessible locations. The algorithm for searching for untraversed locations is a path node search algorithm, including depth-first search and breadth-first search, which can search for grids corresponding to the untraversed locations in the global map. Preferably, the untraversed locations are located within the reachable area of the cleaning robot and are locations connected to the current location of the cleaning robot, as found by a corresponding path node search algorithm (including an A* algorithm). The robot then walks to the locations one by one along the corresponding path, and then plans a preset planned path covering the hard floor area from these locations.
[0070] In summary, the robot recursively searches for passable areas on the global map that have not been walked through and are not covered by carpets, and then navigates there to complete the corresponding coverage and cleaning. This recursion continues until the entire hard floor area is walked through, and only the carpet partition remains. At this time, the cleaning robot encloses the grids corresponding to all marked carpet boundary points into carpet partitions, forming the coverage range of each grid area of the carpet in the global map. In this way, the cleaning robot can accurately identify the shape, size and position of the carpet partition, and promptly remind the cleaning robot if it accidentally enters the carpet partition, reducing the slippage of the cleaning robot's drive wheels to affect the cleaning coverage rate in the hard floor area.
[0071] As an embodiment, in step S1, the method for calculating the area of a carpet partition based on the detected boundary line of the carpet partition includes: the cleaning robot divides a currently detected carpet partition into at least one regular graphic area. Preferably, a carpet partition is a rectangular area or a combination of at least two rectangular areas, and the regular graphic area constituting a carpet partition is a rectangular area or a combination of at least two rectangular areas. In the same indoor environment, a hard floor area and at least one carpet partition constitute the rectangular area; the hard floor area and the carpet partition are both set as passable areas. The cleaning robot then obtains the coordinates of the endpoints of the boundary line of the currently detected carpet partition in the horizontal axis direction from the global map, and then calculates the projection length of the boundary line of the currently detected carpet partition in the horizontal axis direction. Simultaneously, the cleaning robot obtains the coordinates of the endpoints of the boundary line of the same carpet partition in the vertical axis direction, and then calculates the projection length of the boundary line of the same carpet partition in the vertical axis direction. Then, based on the geometric type of each regular graphic area that constitutes the currently detected carpet partition, the area of the corresponding regular graphic area is calculated using the projection length in each coordinate axis direction, and the sum of the areas of all regular graphic areas that constitute the currently detected carpet partition is set as the area of the carpet partition. Wherein, the grid corresponding to the boundary points of the carpet partition is pre-marked in the global map, and the coordinate information of the boundary points of the carpet partition can be obtained, and the coordinates of the endpoints of the boundary line of the carpet partition are used accordingly; when the carpet partition is set in the room area of the indoor environment, the regular graphic area that constitutes a carpet partition is a rectangular area or a combination of at least two rectangular areas, or a trapezoid, a triangle and a combination thereof, and the endpoints of the carpet partition in each coordinate axis direction can be obtained, including the upper left corner point, the lower left corner point, the upper right corner point and the lower right corner point. If the carpet partition is composed of a circular area, the carpet partition is in The lines connecting the endpoints in the directions of the respective coordinate axes can be regarded as the diameters in the directions of the respective coordinate axes. The side lengths of the boundary lines formed by the corresponding endpoints can be calculated from the endpoints of the carpet partition, and used as the side lengths of the regular graphic regions constituting the carpet partition. The carpet partition can then be divided into multiple rectangular regions. The area of the carpet partition can be calculated by calculating the area of the rectangles (the product of the length and width (for a single rectangle), the accumulation of the product of the length and width (for a combination of multiple rectangles), or half the product of the base and the height (for a triangle). Alternatively, the area can be calculated by calculating the number of grid cells filled in the closed region enclosed by the boundary lines.
[0072] Based on the above embodiment, step S1 further includes: after the cleaning robot has walked through the passable area excluding all carpet partitions in the indoor environment, it is determined that the cleaning robot has traversed the hard floor area, that is, the cleaning robot has cleaned the hard floor area, and the location points where the cleaning robot has walked in the hard floor area are marked in sequence in the corresponding grids of the global map to form a contour map of the hard floor area; then the number of grids occupied by the hard floor area in the global map is counted to form the number of grids filled by the closed area enclosed by the contour line of the indoor environment and the boundary line of the carpet partition (the passable area excluding all carpet partitions), and then the product of the number of grids and the area of the unit grid (the floor area of a single grid, regarded as the physical area occupied by each grid of the grid map) is set as the area of the hard floor area.
[0073] Preferably, if half of a complete grid is not occupied, then the grid is considered not occupied. Therefore, when calculating the ratio of the area of a single carpet partition to the area of the hard floor area in the aforementioned embodiment, the ratio obtained is biased high, providing redundancy for repeated cleaning caused by slipping. If half of a complete grid is not occupied, then the grid is considered occupied, providing redundancy for missed cleaning caused by slipping.
[0074] As an embodiment, in step S2, the method of setting the standard cleaning time of the cleaning robot in the carpet partition to be cleaned according to the area of the carpet partition to be cleaned includes:
[0075] The standard cleaning time is equal to the product of the ratio of the area of the carpet section to be cleaned to the effective cleaning area of the cleaning robot and a preset error coefficient. Specifically, the standard cleaning time is equal to the ratio of the carpet section, whose ratio to the area of the hard floor area is within a preset coverage ratio range, to the effective coverage area of the cleaning robot, within the allowable error range. The effective cleaning area of the cleaning robot is equal to the product of a preset walking speed (the cleaning speed of the cleaning robot on the carpet surface is the result of preliminary testing) and the diameter of the cleaning robot (generally, a circular-bodied sweeping robot is used as the cleaning robot); the diameter of the cleaning robot is perpendicular to the walking direction of the cleaning robot. The preset error coefficient is used to indicate the degree of difference between the coverage area of the cleaning robot's actual walking trajectory after the cleaning robot has completed the cleaning of the carpet section to be cleaned and the area of the carpet section to be cleaned.
[0076] The ratio of the area of the carpet partition to be cleaned to the effective cleaning area of the cleaning robot is equal to the time taken by the cleaning robot to walk through the carpet partition to be cleaned without generating errors, pausing and taking into account the rotation time of the cleaning robot, which is the walking time of the cleaning robot; however, the carpet partition to be cleaned is a closed area in which the cleaning robot can slip, so that when the cleaning robot walks in the carpet partition to be cleaned according to the preset planned path, the shape of the trajectory actually walked in the carpet partition to be cleaned is different from the shape of the preset planned path. Therefore, the time actually taken by the cleaning robot to walk through the carpet partition to be cleaned is greater than the ratio of the area of the carpet partition to be cleaned to the effective cleaning area of the cleaning robot. In this embodiment, the preset error coefficient needs to be set to compensate for the error caused by the cleaning robot walking in the carpet partition to be cleaned; the preset error coefficient is used to represent the difference between the coverage area of the trajectory actually walked by the cleaning robot after traversing the carpet partition to be cleaned and the area of the carpet partition to be cleaned. The reasons for the difference include but are not limited to: the time consumed by the cleaning robot stopping to adjust the direction (excluding the robot's walking time), and the area of the area larger than the area covered by the cleaning in the predetermined direction due to the cleaning robot slipping on the carpet surface.
[0077] Preferably, in order to calculate the time interval required to adjust the walking direction of the cleaning robot based on the standard cleaning time, a preset time coefficient is set to calculate the ratio of the standard cleaning time. The preset time coefficient is adapted to the shape of the carpet partition to be cleaned (the shape determined by traversing the hard floor area in step S1 and the result of screening in step S2). The preset time coefficient is related to the number of boundary lines that enclose the carpet partition to be cleaned, and the larger the number of boundary lines that enclose the carpet partition to be cleaned, the smaller the preset time coefficient. Thus, the standard cleaning time is distributed among the boundary lines of the carpet partition to be cleaned, so that the adjusted walking direction can correspond to the extension direction of each boundary line of the carpet partition to be cleaned, thereby achieving a reasonable configuration of the number of walking direction adjustments of the cleaning robot within the carpet partition to be cleaned. This overcomes the problem of misjudging the actual walking time of the cleaning robot due to related slip errors, such as easily guiding the cleaning robot away from the carpet partition in step S3.
[0078] The effective cleaning area of the cleaning robot is equivalent to the area covered by the cleaning robot's body during one second of walking. By setting a preset time coefficient to account for the time-varying state of the cleaning robot's actual walking process, it corrects the ideal time for the cleaning robot to traverse the carpet partition to be cleaned, overcoming errors caused by changes in the walking surface medium and the robot's body movement. Preferably, the carpet partition to be cleaned is a rectangular planar area covered with carpet; wherein the preset error coefficient is set to a value greater than or equal to 2, and the preset time coefficient is set to a value of 1 / 4, corresponding to the four boundary lines of the rectangular planar area.
[0079] As an embodiment, in step S3, the method of maintaining walking in the carpet partition to be cleaned until the time consumed by the cleaning robot walking in the carpet partition to be cleaned reaches the standard cleaning time includes:
[0080] Step S31, when the cleaning robot starts walking from a preset walking starting point in the carpet partition to be cleaned, when the intensity of the ultrasonic reflection signal received by the ultrasonic sensor is not within the preset intensity threshold range, the cleaning robot determines that it is currently walking to the boundary line of the carpet partition to be cleaned, and then the cleaning robot adjusts its walking direction so that the cleaning robot does not walk to the outside of the carpet partition to be cleaned, wherein the angle between the adjusted walking direction of the cleaning robot and its walking direction before adjustment is set to be greater than or equal to the angle between the walking direction before adjustment and the boundary line to which the cleaning robot walks, so as to correct the walking direction of the cleaning robot from the boundary line of the carpet partition to be cleaned back to pointing to the inside of the carpet partition to be cleaned.
[0081] It should be noted that within the carpet partition to be cleaned, each time the cleaning robot reaches a location, it determines that it has traversed that location and sets it as a traversed location. However, the grid corresponding to that location is not marked as traversed in the global map to avoid introducing robot slip errors in the global map. The larger the angle between the cleaning robot's adjusted walking direction and its original walking direction, the more area the cleaning robot will clean before and after the adjustment.
[0082] In step S32, the cleaning robot continues to walk within the carpet partition to be cleaned, i.e., it continues to traverse the carpet partition to be cleaned according to the walking and detection method of step S31 until the time taken by the cleaning robot to walk from the preset walking starting point within the carpet partition to be cleaned reaches the standard cleaning time, and the cleaning robot determines that it has covered the carpet partition to be cleaned; wherein, the cleaning robot does not walk according to the preset planned path within the carpet partition to be cleaned to reduce the error offset caused by slipping. Due to the existence of slipping, the cleaning robot preferentially selects a random cleaning method to clean the carpet partition to be cleaned. wherein, at least one ultrasonic sensor is installed in front of the bottom of the cleaning robot for emitting ultrasonic waves toward the ground on which the cleaning robot walks; wherein, the preset intensity threshold range is used to represent the signal intensity range of the ultrasonic reflection signal fed back by the carpet partition.
[0083] Optionally, within the carpet partition to be cleaned, the cleaning robot starts from a preset walking starting point, walks within the carpet partition to be cleaned, and records the time it spends within the carpet partition to be cleaned. Preferably, in order to ensure that the cleaning robot does not easily walk out of the carpet partition to be cleaned and that there is a sufficiently open walking area within the carpet partition to be cleaned, the cleaning robot sets the preset walking starting point as the center point of the carpet partition to be cleaned, and then controls the cleaning robot to walk randomly from the center point of the carpet partition to be cleaned. The cleaning robot synchronously uses a timer device to record its walking time. In some embodiments, every time the cleaning robot walks for a predetermined time interval, the cleaning robot adjusts its current walking direction and then maintains walking within the carpet partition to be cleaned according to the adjusted walking direction to reduce the probability of walking out of the carpet. In some embodiments, the time for adjusting the current walking direction can be the time the cleaning robot pauses to switch to a pre-stored walking direction, or it can be ignored. In the process of the cleaning robot walking along the adjusted walking direction in the carpet partition to be cleaned, when the cleaning robot records that it has walked for a predetermined time interval, the cleaning robot starts to make a new walking direction adjustment, and repeats this until the time recorded as the cleaning robot's walking time from the preset walking starting point reaches the standard cleaning time, and it is determined that the cleaning robot has traversed the carpet partition to be cleaned, and then it can stop walking in the carpet partition to be cleaned, wherein the standard cleaning time can represent the time consumed by the cleaning robot to clean all or part of the carpet partition to be cleaned from the preset walking starting point, which is an ideal result calculated according to a preset mathematical model.
[0084] In summary, after the cleaning robot has finished cleaning the hard floor area, it can use a random walk pattern when traversing the carpet section to be cleaned. However, this does not necessarily guarantee complete coverage of the carpet section. When the carpet section to be cleaned, as defined in this application, is a carpet-covered area within a room, this application relies on inertial sensors and ultrasonic sensors to perform a wide-area cleaning operation within an appropriate timeframe within each carpet section, without the need for mapping and positioning, or path planning. This reduces mapping and positioning errors caused by slippage of the robot's drive wheels, thereby overcoming the effects of slippage caused by the carpet, and avoiding the effects of drift errors accumulated by the cleaning robot's inertial sensors on the carpet surface. This improves the cleaning robot's coverage rate within the carpet section within a limited timeframe. Because the robot adjusts its walking direction promptly upon reaching the boundary, it can cross over the same local area within the same carpet section and also traverse untraversed areas, thus balancing coverage of the carpet surface in different directions. However, the robot does not completely clean the carpet, but rather completely cleans the hard floor area outside the carpet. Therefore, while accounting for slippage caused by the carpet, it also maintains a high cleaning rate for the hard floor.
[0085] As an embodiment, in step S3, after the cleaning robot walks through the hard ground area, the method for the cleaning robot to enter a currently screened carpet partition to be cleaned from the hard ground area includes: first, it is necessary to determine the currently screened carpet partition to be cleaned, which is obtained from all the carpet partitions to be cleaned screened out in step S2; specifically, the cleaning robot selects a corner point closest to the current position of the cleaning robot from all the carpet partitions to be cleaned that have not been entered by the cleaning robot, and configures it as a reference corner point, and the reference corner point is a corner point of the currently screened carpet partition to be cleaned; wherein, each boundary point of the carpet partition to be cleaned includes a corner point, and the reference corner point is pre-marked in the corresponding grid of the global map; preferably, there is no common corner point or common boundary line between different carpet partitions. Corner points are the endpoints of the boundary lines that enclose the carpet partition to be cleaned, where each corner point has a corresponding carpet partition to be cleaned. When the planar shape of the carpet partition to be cleaned is a polygon, the corner points of the carpet partition to be cleaned are the vertices of the carpet partition to be cleaned, and the boundary lines of the carpet partition to be cleaned are the edges of the polygon. The carpet partition to be cleaned is equivalent to a closed figure composed of multiple boundary line segments connected end to end, corresponding to a closed area. Polygons can be divided into regular polygons and irregular polygons, convex polygons and concave polygons, and can preferably be rectangles. This embodiment uses these reference corner points to determine the carpet partition to be cleaned closest to the cleaning robot, thereby accelerating the cleaning robot's entry into the carpet partition to be cleaned.
[0086] Then, within the carpet partition to be cleaned where the reference corner point is located, the cleaning robot selects two boundary lines with the reference corner point as a common endpoint, configuring them as a first reference side and a second reference side, respectively. Each boundary line corresponds to a corresponding carpet partition to be cleaned. The cleaning robot selects the midpoint of the first reference side and the midpoint of the second reference side that is closest to the cleaning robot's current position as the current preset target point, where the carpet partition to be cleaned where the reference corner point is located is the carpet partition where the current preset target point is located. The cleaning robot then sets the carpet partition to be cleaned where the current preset target point is located as the current carpet partition to be cleaned that the robot needs to enter, and updates it to the currently selected carpet partition to be cleaned. Thus, according to the principle of proximity, the midpoint on the corresponding boundary line of the carpet partition to be cleaned is selected as the navigation entry point for the cleaning robot to enter the closest carpet partition to be cleaned.
[0087] Specifically, the method for a cleaning robot to enter a carpet partition to be cleaned from a hard ground area includes: forming a navigation path based on a passable grid between a grid corresponding to a current position and a grid corresponding to the current preset target point searched out from a global map of the cleaning robot, and then the cleaning robot walks along the navigation path point by point to the current preset target point, but does not clean the ground during this walking process; as for the method of walking from the current preset target point to the preset walking starting point of the carpet partition to be cleaned where the current preset target point is located, the cleaning robot walks directly in the direction of the corresponding preset walking starting point pointing to the current preset target point, wherein the current preset target point and the preset walking starting point of the carpet partition to be cleaned where it is located can pre-calculate their posture information and save it, and mark the corresponding grid in the global map; the current position point of the cleaning robot is represented by the center point of the cleaning robot's body. When the cleaning robot walks to the preset walking starting point, the cleaning robot determines that it has completely entered the carpet area to be cleaned, and stops using the accumulated mileage values and angle values measured by the inertial sensor to calculate the position of the cleaning robot, and also stops marking the grid in the global map to reduce the mapping of the cleaning robot's slip error data to the global map.
[0088] On the basis of the above embodiment, before each repetition of step S3, that is, after each execution of step S4, the cleaning robot selects a corner point closest to the current position of the robot updated in the last execution of step S4 from all currently untraversed carpet partitions to be cleaned and configures it as a reference corner point; then, in the carpet partition to be cleaned to which the reference corner point belongs, two boundaries with the reference corner point as a common endpoint are selected and configured as the first reference edge and the second reference edge respectively; then, among the midpoints of the first reference edge and the second reference edge, the midpoint closest to the updated current position of the cleaning robot is selected and configured as the next preset edge. target point; and the carpet partition to be cleaned to which the reference corner point belongs is the next screened carpet partition to be cleaned, and the next preset target point serves as the navigation entrance for the cleaning robot to enter the next screened carpet partition to be cleaned, and then the next screened carpet partition to be cleaned is updated to the currently screened carpet partition to be cleaned, the next preset target point is updated to the current preset target point, and the preset walking starting point of the next screened carpet partition to be cleaned is updated to the preset walking starting point of the currently screened carpet partition to be cleaned, so that the robot starts cleaning in the next screened carpet partition to be cleaned from the preset walking starting point.
[0089] As an embodiment, in step S4, the cleaning robot starts walking along the boundary line of the carpet partition to be cleaned and extracts the edge and corner information of the carpet partition to be cleaned, and then repositions the posture information of the cleaning robot based on the extracted edge and corner information of the carpet partition to be cleaned, and updates the current position of the cleaning robot with the repositioned posture information of the cleaning robot. The method includes:
[0090] When the cleaning robot reaches the boundary line of the carpet zone to be cleaned described in step S3 (the carpet zone to be cleaned that the cleaning robot travels to during step S3), the cleaning robot rotates its body to adjust its walking direction until the intensity of the ultrasonic reflection signal received by the ultrasonic sensor mounted on one side of the cleaning robot is not within a preset intensity threshold range, and the intensity of the ultrasonic reflection signal received by the ultrasonic sensor mounted on the other side of the cleaning robot is within the preset intensity threshold range. Then, it is determined that the two ultrasonic sensors of the cleaning robot are located on opposite sides of the boundary line of the carpet zone to be cleaned, and the current position of the robot is set as the relocation starting position. In some embodiments, after the cleaning robot adjusts the two ultrasonic sensors to be located on opposite sides of the boundary line of the carpet zone to be cleaned, the current position of the cleaning robot is located on the boundary line. It should be noted that the current position of the cleaning robot is the center point of the cleaning robot body. The method for adjusting the two ultrasonic sensors to be located on opposite sides of the boundary line of the carpet zone to be cleaned can be to rotate the cleaning robot body and change its walking direction until the ultrasonic sensors on each side detect corresponding ground medium type information.
[0091] The cleaning robot starts from the repositioning starting position and walks in a preset clockwise direction while keeping the ultrasonic sensors on both sides of the cleaning robot separated on both sides of the boundary line of the carpet partition to be cleaned, so that the cleaning robot walks along the boundary line of the carpet partition to be cleaned, and uses the inertial sensor to detect the change in the deflection angle of the cleaning robot, that is, measuring the angle turned by the cleaning robot when walking along the boundary line of the carpet partition to be cleaned.
[0092] When the cleaning robot walks to a corner point, it detects that the change in the deflection angle reaches a reference angle, sets the posture information of the corner point as the posture information for repositioning the cleaning robot, and uses the posture information of the corner point to update the current posture information of the cleaning robot, so that the cleaning robot rotates through the reference angle in a preset clockwise direction at the corner point; then determines that the cleaning robot has regained its posture information within the carpet partition to be cleaned, completing one repositioning of the cleaning robot. The change in the deflection angle is used to represent a change in the walking direction of the cleaning robot; the corner point is the common endpoint of the two boundary lines of the carpet partition to be cleaned, forming a position point where the cleaning robot maintains its walking along the boundary line of the carpet partition to be cleaned by rotating the reference angle; the preset clockwise direction is clockwise or counterclockwise. Ultrasonic sensors are respectively installed on both sides of the cleaning robot to detect the type of ground media in the areas on both sides of the walking direction of the cleaning robot.
[0093] Preferably, the reference angle is within the range of allowable slip errors within the carpet zone to be cleaned. This allows the cleaning robot to rotate at the reference angle at corner points to maintain its path along the boundary of the carpet zone to be cleaned, and to detect significant or regular changes in the intensity of the ultrasonic reflection signal, such as variations within or outside a preset intensity threshold. In this embodiment, the robot adjusts its direction of travel to maintain the two ultrasonic sensors on either side of the boundary of the current specific media zone, thereby, to a certain extent, correcting for slip errors that may exist when the gyroscope detects angles. Due to the influence of slip errors accumulated during walking, if the reference angle is set too small, it is difficult to find a suitable relocation position. If the reference angle is set too large, the accuracy of the object found is relatively low. Therefore, the reference angle disclosed in this embodiment can be set to allow the cleaning robot to walk to a corner position and maintain walking along the boundary line by rotating the reference angle. The corner position can be the endpoint of a line segment, or the common endpoint of two boundary lines, or the two ends of a gap. The obstacles distributed on the boundary line also make the intensity of the ultrasonic reflection signal produce more obvious or regular changes and allow the cleaning robot to capture it in time, forming a necessary factor for the selection of the relocation position.
[0094] It should be noted that the position and posture information of each boundary line that encloses the carpet partition to be cleaned is pre-stored in the cleaning robot's memory (the position and posture information of the boundary lines of the hard floor area obtained in step S1 is also stored). Before the cleaning robot enters the carpet partition to be cleaned, the corresponding grid is marked in the global map and the position and posture information is recorded. A corner point is the endpoint of a boundary line that encloses the carpet partition to be cleaned, that is, the common endpoint of two adjacent boundary lines. Its position and posture information is also pre-stored in the cleaning robot's memory. In this embodiment, whether the cleaning robot is navigating a corner point can be determined by the change in rotation angle over a certain period of time, or by the relationship between the rotation angle and pre-stored grid positions, or by the positional relationship between the starting point of the cleaning robot's movement along the boundary line of the carpet partition to be cleaned and the first corner point it reaches. These factors can also be combined for a comprehensive determination, etc. Thus, without marking new grid information on the map in real time or calculating the cleaning robot's position and posture information in real time, the cleaning robot's current position is relocated to the pre-recorded position of the corner point in the cleaning robot's memory. The global map is pre-stored in the robot's memory. The global map is created by the cleaning robot before it enters the carpet partition to be cleaned. The robot uses its own sensors (such as accelerometers, gyroscopes, ultrasonic rangefinders, etc.) to search each room area, sense the accessible position, shape and size of each room area, and draw a global map containing environmental boundary information based on this.
[0095] Specifically, the two ultrasonic sensors, located on either side of the boundary line of the carpet section to be cleaned, are located on the left and right sides of the cleaning robot's central axis. If the carpet section to be cleaned is polygonal in shape and the two ultrasonic sensors are configured to be mounted on either side of the cleaning robot's central axis, the cleaning robot will rotate once or multiple times during movement to maintain the two ultrasonic sensors' separation on either side of the boundary line of the carpet section to be cleaned. During this process, the cleaning robot's body (including the drive wheels and ultrasonic sensors) inevitably repeatedly enters and exits the carpet section to be cleaned, forming a trajectory that intersects with the boundary line of the carpet section to be cleaned. In this manner, the cleaning robot moves along the boundary line of the carpet section to be cleaned. If the cleaning robot is a sweeping robot, the robot can perform staggered cleaning of the carpet section to be cleaned, moving within the carpet section to be cleaned in a preset clockwise direction to achieve a fixed edge-to-edge movement around the center of the carpet section to be cleaned.
[0096] Based on the above embodiment, step S4 also includes: before the cleaning robot walks to the repositioning starting position, the cleaning robot walks in the carpet partition to be cleaned, and when the intensity of the ultrasonic reflection signal received by the ultrasonic sensor is not within a preset intensity threshold range, the cleaning robot determines that it has walked to the boundary line where the repositioning starting position is located; wherein the preset intensity threshold range is used to represent the signal intensity range of the ultrasonic reflection signal fed back by the carpet partition; wherein the corner point and the repositioning starting point are located on the same boundary line of the carpet partition to be cleaned; obstacles are allowed to exist at the corner point, so that the corner point is located at the end point position of the corner area or the gap (such as the gap hole at the bottom of the wall).
[0097] Specifically, while the cleaning robot is walking within the carpet section to be cleaned, if the intensity of the ultrasonic reflection signal received by the ultrasonic sensor is not within a preset intensity threshold range, the cleaning robot determines that it has reached the boundary line of the carpet section to be cleaned; wherein the preset intensity threshold range is used to represent the signal intensity range of the ultrasonic reflection signal fed back from the carpet section to be cleaned. The ultrasonic sensor is any one of the ultrasonic sensors mounted on either side of the cleaning robot. That is, while the robot is randomly walking within the carpet section to be cleaned, as long as the intensity of the ultrasonic reflection signal received by the ultrasonic sensor on one side (left or right) of the cleaning robot is not within the preset intensity threshold range, the cleaning robot determines that it has reached the boundary line of the carpet section to be cleaned and has begun to walk out of the carpet section to be cleaned, and then selects its current position on the boundary line as the relocation starting point.
[0098] The corner point and the repositioning starting point are located on the same boundary line of the carpet partition to be cleaned, and the boundary line is located between the ultrasonic sensors on both sides of the cleaning robot. There is an ultrasonic sensor located above the carpet partition to be cleaned, and the other ultrasonic sensor is located above the area outside the carpet partition to be cleaned (hard floor area). For example, the first ultrasonic sensor is installed on the left side of the bottom of the cleaning robot, and the second ultrasonic sensor is installed on the right side of the bottom of the cleaning robot. If the cleaning robot walks along the boundary line of the carpet partition to be cleaned in a counterclockwise direction, the first ultrasonic sensor is located above the carpet partition to be cleaned, and the second ultrasonic sensor is located above the area outside the carpet partition to be cleaned. Preferably, the carpet partition to be cleaned is a rectangular area with a carpet on the surface, the corner points are the vertices of the rectangular area, and the reference angle is 90 degrees, so that after the cleaning robot rotates a right angle in a preset clockwise direction, the posture information of the vertex of the right angle is used to update the current posture information of the cleaning robot; wherein, each side of the rectangular area is a boundary line, and the rectangular area is surrounded by four boundary lines, and the posture information of the vertex of the right angle includes the coordinate information and angle information of the vertex of the right angle, which are all pre-saved posture information to facilitate subsequent repositioning operations. Corresponding to the indoor environment, the walking environment of the cleaning robot covers the floor of the indoor environment, wherein the wall is perpendicular to the floor; if the carpet partition to be cleaned covers the floor of the indoor environment, then the turning angles of the motion trajectory of the cleaning robot along the carpet partition to be cleaned are all right angles, and the angles between the two intersecting boundary lines of the carpet partition to be cleaned are all right angles.
[0099] In step S4, when the cleaning robot is walking in the carpet partition to be cleaned, when the intensity of the ultrasonic reflection signal received by one of the ultrasonic sensors is not within a preset intensity threshold range, the cleaning robot determines that there is no carpet on the surface of the area in front of it. Since the cleaning robot is walking in the carpet partition to be cleaned, when the cleaning robot detects that there is no carpet on the surface of the area in front of it, the detection range of the ultrasonic sensor is outside the carpet partition to be cleaned, and the ultrasonic sensor may be outside the carpet partition to be cleaned. The cleaning robot currently detects the boundary line of the carpet partition to be cleaned and determines that it is currently walking to the boundary line of the carpet partition to be cleaned. Then, the cleaning robot adjusts its walking direction, that is, the cleaning robot adjusts its walking angle to walk toward the inside of the carpet partition to be cleaned, so as to avoid the cleaning robot as a whole leaving the boundary line of the carpet partition to be cleaned. Part of the cleaning robot body may be allowed to be exposed outside the carpet partition to be cleaned, but the walking direction of the cleaning robot needs to be adjusted to drive the cleaning robot to walk along the boundary line of the carpet partition to be cleaned.
[0100] In the aforementioned embodiment, while the cleaning robot is navigating within the carpet section to be cleaned, it controls its ultrasonic sensor to emit ultrasonic waves and receive reflected ultrasonic signals, and controls its inertial sensor to measure the robot's attitude angles, but stops marking grids in the global map. Specifically, the cleaning robot does not calculate its own posture information (including position coordinates and angles) on a flexible surface such as a carpet, does not construct a map in real time, and does not add new grids to the global map, thereby reducing the impact of errors caused by the cleaning robot slipping. However, the cleaning robot loses its posture information (including position coordinates and angles) on the carpet surface. To reacquire its posture information (i.e., relocalize) before leaving the carpet and facilitate path navigation in areas outside the carpet, the cleaning robot executes step S4 to relocalize its posture information after determining that the time spent navigating from the preset starting point has reached the standard cleaning time. Then, after the cleaning robot uses the posture information of the corner point to update the current posture information of the cleaning robot, the cleaning robot walks to the hard ground area. At the same time, the cleaning robot obtains its posture information and marks it in the global map as the grid corresponding to the current position of the cleaning robot to perform map construction operations.
[0101] It should be noted that the cleaning robot includes a machine body, a perception system, a control system, a drive system, a cleaning system, and an energy system. The main body of the cleaning robot includes a forward portion and a rear portion, and has an approximately circular shape (both the front and rear are circular). It may also have other shapes, including but not limited to an approximately D-shaped shape with a circular front and rear, or a rectangular or square shape with a circular front and rear. In some embodiments, a collision sensor and a proximity sensor are provided on the forward portion of the robot's main body, a cliff sensor is provided on the lower part of the robot's main body, and a controller, a magnetometer, an accelerometer, a gyroscope (Gyro), an odometer (ODO, full name odograph) installed inside the drive wheel, and a drop sensor installed in the slot where the left and right drive wheels connect to the chassis of the body, etc., are used to provide various position information and motion state information of the machine to the processor. The processor can control the robot to travel across different types of ground based on drive commands with distance and angle information (e.g., x, y, and z components), mark the boundaries of carpet partitions, hard ground areas, and grids corresponding to encountered obstacles in the global map, and assign posture information and environment type information. The processor includes a drive wheel module, which can control the left drive wheel and the right drive wheel at the same time. In order to more accurately control the movement of the cleaning robot, preferably, the drive wheel module includes a left drive wheel module and a right drive wheel module, and the left drive wheel module and the right drive wheel module are symmetrically arranged along the transverse axis defined by the body. In order for the cleaning robot to be able to move more stably on the ground or have stronger mobility, the cleaning robot may include one or more driven wheels, and the driven wheels include but are not limited to universal wheels for changing the steering. The drive wheel module includes a drive wheel, a drive motor and a control circuit for controlling the drive motor. The drive wheel module can also be connected to a circuit for measuring the drive current, an odometer and a gyroscope to achieve map construction. When the cleaning robot is a sweeping robot and the carpet partition is a carpet-covered area in a room area, the present application relies on inertial sensors and ultrasonic sensors to perform cleaning operations with a larger coverage area on each carpet partition, thereby reducing mapping errors caused by slippage of the robot's drive wheels, and obtaining accurate body positioning information in each carpet partition so as to facilitate entering an untraversed carpet partition with a reasonable distance from a traversed carpet partition, and orderly complete the cleaning work of all carpet partitions included in the carpet in the indoor working area.
[0102] A memory within the cleaning robot stores the global map constructed by the cleaning robot. The global map is a grid map composed of grid cells. The grid in the aforementioned embodiment is the grid cell. The grid cell is a virtual square with a side length of 20 cm. A map with a certain length and width formed by a continuous arrangement of many grid cells for representing geographical environment information is a grid map. When mapped to a global coordinate system, it forms the global map. Based on the grid map, the cleaning robot can determine the current position of the corresponding grid cell from data detected while walking and can update the status of the grid cell in real time, except when the cleaning robot is walking in a carpet partition. Preferably, the carpet partition in the aforementioned embodiments refers to an isolated rectangular area covered with carpet that is not adjacent to a wall or an object against a wall, and the cleaning robot can walk along the edge of the isolated rectangular area. The grid area corresponding to the isolated rectangular area does not refer to just a single grid cell. Multiple grid cells that are close together and can form a continuous partition are also considered a partition.
[0103] In addition, in the above embodiments, the preset planned path recorded by the cleaning robot while walking outside the carpet partition to be cleaned and the grids corresponding to the marked boundary points of the carpet partition to be cleaned can be stored in the memory. The preset planned path can be a bow-shaped path, and the carpet partition is a rectangular area or an area composed of multiple discontinuous rectangular areas. The memory (including the cache area) of the cleaning robot includes the grid coordinates of the grid cells corresponding to the bow-shaped path, the grid coordinates of the grid cells corresponding to the starting position point of the bow-shaped path, the grid coordinates of the grid cells corresponding to the ending position point of the bow-shaped path, the start execution time of the bow-shaped path, the end execution time of the bow-shaped path, the grid coordinates of the grid cells corresponding to the boundary points of the carpet partition, etc. The data stored in the memory cannot be deleted at will and can be used as reference data for the cleaning robot to reposition and build a map.
[0104] Obviously, the above embodiments are merely examples for clarity of explanation and are not intended to limit the implementation methods. Those skilled in the art will readily appreciate that other variations or modifications based on the above descriptions are possible. It is not necessary and impossible to enumerate all implementation methods here. Obvious variations or modifications arising therefrom remain within the scope of protection of the present invention.
Claims
1. A ground environment motion planning method based on ultrasonic waves, characterized in that: The ground environment motion planning method is applicable to a cleaning robot equipped with an ultrasonic sensor on the bottom, and the cleaning robot is configured to walk in a ground environment with carpets and hard floors. The ground environment motion planning method comprises: Step S1: The cleaning robot detects at least one carpet partition based on the strength of the detection signal received by the ultrasonic sensor, then walks in a passable area outside the detected carpet partition and calculates the area of the carpet partition based on the boundary line of the detected carpet partition, until the cleaning robot walks through all hard floor areas in the indoor environment and calculates the area of the hard floor area. The cleaning robot marks the passable area in the indoor environment except the detected carpet partition as a hard floor area; a boundary line is set between each carpet partition and the hard floor area to mark it as the boundary line of the corresponding carpet partition; Step S2: Filtering the carpet partition to be cleaned from the carpet partitions detected in step S1 based on the ratio of the area of the carpet partition to the area of the hard floor area; then, setting a standard cleaning time for the cleaning robot in the carpet partition to be cleaned based on the area of the carpet partition to be cleaned; Step S3: The cleaning robot enters a currently selected carpet zone to be cleaned from the hard floor area, and then keeps walking in the same carpet zone to be cleaned until the time spent by the cleaning robot walking in the carpet zone to be cleaned reaches the standard cleaning time; Step S4: After the walking time of the cleaning robot in the carpet partition to be cleaned described in step S3 reaches the standard cleaning time, the cleaning robot starts to walk along the boundary line of the carpet partition to be cleaned and extracts the edge and corner information of the carpet partition to be cleaned. Based on the extracted edge and corner information of the carpet partition to be cleaned, the cleaning robot's posture information is relocated, and the relocated posture information of the cleaning robot is used to update the current position of the cleaning robot, and then the cleaning robot leaves the carpet partition to be cleaned.
2. The ground environment motion planning method according to claim 1, characterized in that: In step S2, the method of selecting the carpet partition to be cleaned from the carpet partitions detected in step S1 according to the ratio of the area of the carpet partition to the area of the hard floor area includes: The cleaning robot determines whether the ratio of the area of a carpet partition calculated in step S1 to the area of the hard floor area is within a preset coverage ratio range. If so, the carpet partition is set as a carpet partition to be cleaned and the cleaning robot selects a carpet partition to be cleaned. Otherwise, the carpet partition is set as a prohibited cleaning partition. The area of the prohibited cleaning zone is smaller than the area of the carpet zone to be cleaned; the preset coverage ratio range is used to describe the layout of the carpet zone and the hard floor area where the cleaning robot is allowed to walk in the same indoor environment; The medium covering the surface of the hard floor area is different from the medium covering the surface of the carpet partition to be cleaned, and different carpet partitions to be cleaned are separated by the hard floor area.
3. The ground environment motion planning method according to claim 2, characterized in that: When step S3 is performed for the first time, the cleaning robot has already walked through the hard floor area. Then, before entering the carpet zone to be cleaned, the cleaning robot selects a carpet zone to be cleaned that is closest to the current position of the cleaning robot and updates it as the currently selected carpet zone to be cleaned. Then, the cleaning robot starts to enter the currently selected carpet zone to be cleaned from its current position. After executing step S4, the method further includes: the cleaning robot selects an untraversed carpet partition to be cleaned that is closest to the updated current position and sets it as the currently selected carpet partition to be cleaned; Then walk to the hard floor area to leave the current carpet partition to be cleaned, and repeat steps S3 and S4 until the cleaning robot traverses each carpet partition to be cleaned in turn and returns to the hard floor area.
4. The ground environment motion planning method according to claim 2, characterized in that: In step S1, the method in which the cleaning robot detects at least one carpet partition based on the strength of the detection signal received by the ultrasonic sensor includes: Step S11: The cleaning robot walks on the hard ground area according to the preset planned path, and controls the ultrasonic sensor to emit ultrasonic waves and receive ultrasonic reflection signals, while controlling the inertial sensor to measure the posture angle of the cleaning robot; Step S12: When the intensity of the ultrasonic reflection signal received by the ultrasonic sensor is within a preset intensity threshold range, the cleaning robot detects the carpet and marks the location point where the carpet is currently detected as the boundary point of the carpet. The grid corresponding to the boundary point of the carpet is then marked in the global map, and the walking direction is adjusted so that the cleaning robot does not enter the carpet. The boundary points of the carpet are connected to form a carpet boundary line, and the closed area formed by the carpet boundary line is configured as a carpet partition. The intensity of the ultrasonic reflection signal is the detection signal intensity received by the ultrasonic sensor.
5. The ground environment motion planning method according to claim 4, characterized in that: In step S12, whenever the cleaning robot detects a carpet, it walks in the outer area of the carpet along the boundary line of the currently detected carpet without entering the currently detected carpet; If, during a process of the cleaning robot walking along a currently detected boundary line of the carpet, it is detected that the intensity of the ultrasonic reflection signal reflected from a first side area of the boundary line is within a preset intensity threshold range, and the intensity of the ultrasonic reflection signal reflected from a second side area of the same boundary line is not within the preset intensity threshold range, then the cleaning robot determines that the currently detected boundary line of the carpet forms a carpet partition, and determines that the cleaning robot has detected a carpet partition, wherein the inertial sensor is used to measure whether the cleaning robot has walked along the boundary line once, and the boundary line of the carpet partition is a boundary line of the carpet; Then the cleaning robot walks along the preset planned path to the untraversed area without entering the carpet, and repeats steps S11 and S12 to detect new carpet partitions; The global map is a grid map and is cached in the memory of the cleaning robot. The bottom of the cleaning robot is equipped with at least two ultrasonic sensors for detecting the ground medium type in the area on both sides of the walking direction of the cleaning robot.
6. The ground environment motion planning method according to claim 4, characterized in that: In step S12, the cleaning robot first walks to an untraversed position point, and then continues to walk from the untraversed position point according to the preset planned path, but does not enter the carpet; When the cleaning robot has walked through the area except the detected carpet, it is determined that the remaining untraversed area is the carpet-covered area; The carpet coverage area is composed of at least one closed area formed by connecting the boundary points of the carpet. A closed area is a carpet partition. The boundary points of each carpet partition belong to the boundary points of the carpet coverage area.
7. The ground environment motion planning method according to claim 5 or 6, characterized in that: In step S1, the method of calculating the area of the carpet partition based on the detected boundary line of the carpet partition includes: Dividing a currently detected carpet partition into at least one regular graphic area; Then, the projection length of the boundary line of a currently detected carpet partition in the direction of the horizontal axis and the projection length of the boundary line of the same carpet partition in the direction of the vertical axis are calculated; Then, based on the geometric type of the regular graphic area that constitutes the currently detected carpet partition, the area of the corresponding regular graphic area is calculated using the obtained projection lengths in the directions of each coordinate axis. Then, the sum of the areas of all regular graphic areas that constitute the currently detected carpet partition is set as the area of the carpet partition.
8. The ground environment motion planning method according to claim 7, characterized in that: The regular pattern area that constitutes a carpet partition is a rectangular area or a combination of at least two rectangular areas; In the same indoor environment, a hard floor area and at least one carpet partition form a rectangular area; Wherein, the hard floor area and the carpet partition are both set as passable areas.
9. The ground environment motion planning method according to claim 7, characterized in that: The step S1 further includes: After the cleaning robot has walked through the passable areas except all carpet partitions in the indoor environment, it is determined that the cleaning robot has traversed the hard floor area, and the location points where the cleaning robot has walked in the hard floor area are marked in sequence in the corresponding grids of the global map to form a contour map of the hard floor area; then the number of grids occupied by the hard floor area in the global map is counted, and the product of the number of grids and the area of the unit grid is set as the area of the hard floor area.
10. The ground environment motion planning method according to claim 4, characterized in that: In step S2, the method for setting the standard cleaning time of the cleaning robot in the carpet partition to be cleaned according to the area of the carpet partition to be cleaned includes: The standard cleaning time is equal to the product of the ratio of the area of the carpet partition to be cleaned to the effective cleaning area of the cleaning robot and a preset error coefficient; The effective cleaning area of the cleaning robot is equal to the product of the preset walking speed of the cleaning robot and the body diameter of the cleaning robot; The preset error coefficient is used to indicate the degree of difference between the coverage area of the trajectory actually walked by the cleaning robot after the cleaning robot actually walks through the carpet partition to be cleaned and the area of the carpet partition to be cleaned.
11. The ground environment motion planning method according to claim 10, characterized in that: In step S3, the method of maintaining walking in the same carpet partition to be cleaned until the time consumed by the cleaning robot walking in the carpet partition to be cleaned reaches the standard cleaning time includes: Step S31: During the process of the cleaning robot starting to walk from a preset walking starting point within the carpet partition to be cleaned, when the intensity of the ultrasonic reflection signal received by the ultrasonic sensor is not within a preset intensity threshold range, the cleaning robot determines that it is currently walking to the boundary line of the carpet partition to be cleaned, and then adjusts the walking direction of the cleaning robot so that the cleaning robot does not walk outside the carpet partition to be cleaned, wherein the angle between the walking direction after the adjustment and the walking direction before the adjustment is set to be greater than or equal to the angle between the walking direction before the adjustment and the boundary line walked to by the cleaning robot; Step S32: The cleaning robot continues to walk within the carpet partition to be cleaned until the recorded time taken by the cleaning robot to walk from the preset walking starting point within the carpet partition to be cleaned reaches the standard cleaning time, and the cleaning robot determines that it has covered the carpet partition to be cleaned; The cleaning robot does not walk along a preset planned path within the carpet partition to be cleaned; Among them, an ultrasonic sensor is assembled in the front of the bottom of the cleaning robot, which is used to emit ultrasonic waves toward the walking ground of the cleaning robot.
12. The ground environment motion planning method according to claim 11, characterized in that: In step S3, after the cleaning robot has walked through the hard floor area, the method for the cleaning robot to enter a currently selected carpet partition to be cleaned from the hard floor area includes: From all carpet partitions to be cleaned that have not been entered by the cleaning robot, select a corner point closest to the current position of the cleaning robot and configure it as a reference corner point; wherein the boundary points of each carpet partition to be cleaned include corner points; Then, the cleaning robot selects two boundary lines with the reference corner point as a common endpoint in the carpet partition to be cleaned where the reference corner point is located, and configures them as a first reference edge and a second reference edge respectively; The cleaning robot selects a midpoint closest to the current position of the cleaning robot between the midpoint of the first reference side and the midpoint of the second reference side and configures it as the current preset target point; Then, the cleaning robot sets the carpet partition to be cleaned where the current preset target point is located as the carpet partition to be cleaned that the robot currently needs to enter.
13. The ground environment motion planning method according to claim 2, characterized in that: In step S4, the cleaning robot starts walking along the boundary line of the carpet partition to be cleaned and extracts the edge and corner information of the carpet partition to be cleaned, and then repositions the posture information of the cleaning robot based on the extracted edge and corner information of the carpet partition to be cleaned, and updates the current position of the cleaning robot with the repositioned posture information of the cleaning robot. The method includes: When the cleaning robot reaches the boundary line of the carpet partition to be cleaned, the cleaning robot rotates its body to adjust its walking direction until the intensity of the ultrasonic reflection signal received by the ultrasonic sensor installed on one side of the cleaning robot is not within a preset intensity threshold range, and the intensity of the ultrasonic reflection signal received by the ultrasonic sensor installed on the other side of the cleaning robot is within the preset intensity threshold range, then it is determined that the two ultrasonic sensors of the cleaning robot are separated on both sides of the boundary line of the carpet partition to be cleaned, and the current position of the robot is set as the relocation starting position; The cleaning robot starts from the repositioning starting position, moves in a preset clockwise direction while keeping the ultrasonic sensors on both sides of the cleaning robot separated on both sides of the boundary line of the carpet partition to be cleaned, and uses the inertial sensor to detect the change in the deflection angle of the cleaning robot; When the cleaning robot walks to a corner point, the posture information of the corner point is set to reposition the posture information of the cleaning robot, and the posture information of the corner point is used to update the current posture information of the cleaning robot, so that the cleaning robot rotates through a reference angle in a preset clockwise direction at the corner point; then, it is determined that the cleaning robot has regained its posture information within the carpet partition to be cleaned; wherein the change in the deflection angle is used to represent the change in the walking direction of the cleaning robot; Wherein, the corner point is the common endpoint of the two boundary lines of the carpet partition to be cleaned; Wherein, the preset clockwise direction is clockwise or counterclockwise; Ultrasonic sensors are installed on both sides of the cleaning robot to detect the type of ground medium in the areas on both sides of the walking direction of the cleaning robot.
14. The ground environment motion planning method according to claim 13, characterized in that: Step S4 further includes: Before the cleaning robot walks to the relocation starting position, the cleaning robot walks in the carpet partition to be cleaned, and when the intensity of the ultrasonic reflection signal received by the ultrasonic sensor is not within a preset intensity threshold range, the cleaning robot determines that it has walked to the boundary line where the relocation starting position is located; The preset intensity threshold range is used to represent the signal intensity range of the ultrasonic reflection signal fed back by the carpet partition; The corner point and the repositioning starting point are located on the same boundary line of the carpet partition to be cleaned; obstacles are allowed to exist at the corner point, so that the corner point is located at the end point of the corner area or the gap.
15. The ground environment motion planning method according to claim 14, characterized in that: When the cleaning robot walks in the carpet partition to be cleaned, the cleaning robot controls the ultrasonic sensor to emit ultrasonic waves and receive ultrasonic reflection signals, and controls the inertial sensor to measure the posture angle of the cleaning robot, but stops marking the grid of the global map; After the cleaning robot uses the posture information of the corner point to update the current posture information of the cleaning robot, the cleaning robot walks to the hard ground area. At the same time, the cleaning robot obtains its posture information and marks it as the grid corresponding to the current position of the cleaning robot in the global map.
Citation Information
Patent Citations
Robot edge cleaning method and robot
CN109984688A
Area cleaning planning method for robot walking along edge, chip and robot
CN111830970A
Cited By
A method for robots to avoid carpets based on ultrasonic detection
CN119014766B