GB2615512A - Method for edge cleaning - Google Patents

Method for edge cleaning Download PDF

Info

Publication number
GB2615512A
GB2615512A GB2117851.2A GB202117851A GB2615512A GB 2615512 A GB2615512 A GB 2615512A GB 202117851 A GB202117851 A GB 202117851A GB 2615512 A GB2615512 A GB 2615512A
Authority
GB
United Kingdom
Prior art keywords
perimeter
order
robotic cleaner
cleanable
cleaning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
GB2117851.2A
Other versions
GB202117851D0 (en
Inventor
Huang Yao
Xu Zhiheng
Ma Peng
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dyson Technology Ltd
Original Assignee
Dyson Technology Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dyson Technology Ltd filed Critical Dyson Technology Ltd
Priority to GB2117851.2A priority Critical patent/GB2615512A/en
Publication of GB202117851D0 publication Critical patent/GB202117851D0/en
Priority to PCT/GB2022/052929 priority patent/WO2023105186A1/en
Publication of GB2615512A publication Critical patent/GB2615512A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0217Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with energy consumption, time reduction or distance reduction criteria
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0219Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory ensuring the processing of the whole working surface
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L11/00Machines for cleaning floors, carpets, furniture, walls, or wall coverings
    • A47L11/40Parts or details of machines not provided for in groups A47L11/02 - A47L11/38, or not restricted to one of these groups, e.g. handles, arrangements of switches, skirts, buffers, levers
    • A47L11/4011Regulation of the cleaning machine by electric means; Control systems and remote control systems therefor
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • A47L9/2836Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means characterised by the parts which are controlled
    • A47L9/2852Elements for displacement of the vacuum cleaner or the accessories therefor, e.g. wheels, casters or nozzles
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/047Optimisation of routes or paths, e.g. travelling salesman problem
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L2201/00Robotic cleaning machines, i.e. with automatic control of the travelling movement or the cleaning operation
    • A47L2201/04Automatic control of the travelling movement; Automatic obstacle detection
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L2201/00Robotic cleaning machines, i.e. with automatic control of the travelling movement or the cleaning operation
    • A47L2201/06Control of the cleaning action for autonomous devices; Automatic detection of the surface condition before, during or after cleaning

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Mechanical Engineering (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Electric Vacuum Cleaner (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

Method 200 for determining an order for cleaning a set of cleanable perimeter segments of an area to be cleaned by a robotic cleaner. Each cleanable perimeter segment defines a path to be followed by the robotic cleaner around an edge of the area to be cleaned from a head of the perimeter segment to a tail of the perimeter segment. The method comprises determining a plurality of possible orders for cleaning the set of cleanable perimeter segments S301; calculating, for each of the plurality of possible orders, a traverse cost for cleaning the set of cleanable perimeter segments S302, wherein the traverse cost for each of the plurality of possible orders is calculated based on a current location of the robotic cleaning device and the relative distances between the cleanable perimeter segments in the respective order; and determining an optimized order for cleaning the set of cleanable perimeter segments based on the calculated traverse costs for each of the plurality of possible orders S303.

Description

METHOD FOR EDGE CLEANING
Field of the Invention
The present invention relates to a method for edge cleaning and to a robot cleaner for edge cleaning.
The invention relates particularly, although not exclusively, to a method for determining an order for cleaning a set of cleanable perimeter segments of an area to be cleaned by a robotic cleaner.
Background
Robotic cleaners are autonomous cleaning devices which can be used to clean floors, surfaces and walls.
A key advantage over traditional cleaning devices is that they do not require continuous manual operation by a human.
Some of the first robotic cleaners followed a random cleaning pattern, moving around a room in a random path, changing direction when the robotic cleaner hit a wall or obstacle. However, such a random cleaning pattern often results in inefficient cleaning, with some areas being missed, and some areas being repeatedly cleaned. Furthermore, these robotic cleaners were vulnerable to hazards, such as stairs.
To address some of these problems, some robotic cleaners include sensors to map an area to be cleaned, and to detect walls, obstacles or hazards Using sensors also helps to avoid collisions with obstacles and walls.
Generally, robotic cleaners clean the environment following a single cleaning pattern, such as an oil drop pattern (e.g. a spiral pattern extending from an initial position of the robotic cleaner). As such, a single cleaning pattern is used without distinguishing between open areas and edge areas (e.g. adjacent to a wall or obstacle). This type of cleaning pattern allows a robotic cleaner to efficiently and effectively clean open spaces, such as the centre of a room, and also helps to ensure that all areas of an open space are cleaned.
However, as cleaning patterns such as the oil drop pattern is planned mainly considering the navigability of the path, and ignoring the layout and shape of the environment and area to be cleaned, when a robotic cleaner follows such a cleaning pattern, it may not followed edges of walls or obstacles, such as furniture, closely, and may also fail to clean deep into the corners. This may lead to poor edge and corner coverage. An improved cleaning pattern with improved edge and corner coverage would be beneficial in more efficiently and effectively cleaning a room.
The present invention has been devised in light of the above considerations.
Summary of the Invention
According to a first aspect, there is provided a method for determining an order for cleaning a set of cleanable perimeter segments of an area to be cleaned by a robotic cleaner, each cleanable perimeter segment defining a path to be followed by the robotic cleaner around an edge of the area to be cleaned from a head of the perimeter segment to a tail of the perimeter segment, the method comprising: determining a plurality of possible orders for cleaning the set of cleanable perimeter segments; calculating, for each of the plurality of possible orders, a traverse cost for cleaning the set of cleanable perimeter segments, wherein the traverse cost for each of the plurality of possible orders is calculated based on a current location of the robotic cleaning device and the relative distances between the cleanable perimeter segments in the respective order; determining an optimized order for cleaning the set of cleanable perimeter segments based on the calculated traverse costs for each of the plurality of possible orders.
In this way, the optimized order for cleaning the perimeter segments is determined, thus improving edge clean efficiency (e.g. compared to simply choosing the perimeter segment closest to a current location of the robotic cleaner). This may result in a quicker total cleaning time, and thus the use of less power, increasing battery life, and decreasing wear and tear of the robotic cleaner.
Optional features will now be set out. The following optional features are combinable singly or in combination with any aspect of the invention.
An area to be cleaned may be a room, a plurality of rooms, or a subsection of a room, for example.
Optionally, the area to be cleaned by a robotic cleaner may be defined as an occupancy grid map comprising a plurality of grid elements. Thus, the relative distances between the cleanable perimeter segments may be based on the number of grid elements between the respective perimeter segments.
Each cleanable perimeter segment may comprise a plurality of sequential grid elements defining the path to be followed by the robotic cleaner between the head and the tail of the perimeter segment.
Optionally, each of the possible orders of the set of cleanable perimeter segments may be determined (e.g. all possible combinations may be determined).
The optimized order may be the order with the smallest traverse cost.
The optimized order may be disregarded if the distance between the current location of the robotic cleaner and the head of the first perimeter segment in the optimized order is greater than a first predefined threshold. In this way, if a first perimeter segment in the optimized order is too far away, the optimized order is overridden/ignored. In these examples, when the optimized order is disregarded, the order for cleaning the set of cleanable perimeter segments is based on a closest head of a perimeter segment relative to the current location of the robotic cleaner. The first predefined threshold may be a predefined number of grid elements, e.g. 40 grid elements, more preferably 30 grid elements, more preferable 20 grid elements, for example.
In some examples, the current location of the robotic cleaner may be detected using one or more sensors and/or one or more cameras, which may be located on the robotic cleaner. Alternatively/additionally, the current location of the robotic cleaner may be detected using mapping techniques and/or a known original position of the robotic cleaner. The current location of the robotic cleaner may be received by the robotic cleaner, e.g. from an external device or source, such as a remote server.
Optionally, the traverse cost may be calculated and the optimized order may be determined only when the distance between the current location of the robotic cleaner and a head of a perimeter segment is greater than a second predefined threshold. In this way, if it is detected that a head of a perimeter segment is very close to the robotic cleaner, that perimeter segment is cleaned first, even if that may not be the optimal order. In particular, when the distance between the current location of the robotic cleaner and a head of a perimeter segment is less than the second predefined threshold, the order for cleaning the set of cleanable perimeter segments is based on a closest head of a perimeter segment relative to the current location of the robotic cleaner. The second predefined threshold may be a predefined number of grid elements, e.g. 8 grid elements, more preferably 6 grid elements, more preferably 4 grid elements, for
example.
The optimized order may be disregarded if the distance between the current location of the robotic cleaner and a head of a perimeter segment different to the first perimeter segment in the optimized order is less than a third predefined threshold. As such, when the first perimeter segment in the optimized order is much further away from a current location of the robot than a closest perimeter segment, which is not the first perimeter segment in the optimized order, the optimized order may be disregarded. Wen the distance between the current location of the robotic cleaner and a head of a perimeter segment different to the first perimeter segment in the optimized order is greater than the third predefined threshold, the order for cleaning the set of cleanable perimeter segments may be based on a closest head of a perimeter segment relative to the current location of the robotic cleaner. The third predefined threshold may be a predefined number of grid elements, e.g. 8 grid elements, more preferably 6 grid elements, more preferably 4 grid elements, for example.
Preferably, the traverse cost for each possible order may be calculated and the optimized order may be determined only when the number of possible orders for cleaning the set of cleanable perimeter segments is less than a fourth predefined threshold. As such, there is a maximum number of perimeter segments which the optimized order may be calculated for. This balances the need for an optimized route with the additional processing costs required to determine the optimized route.
When the number of possible orders for cleaning the set of cleanable perimeter segments is greater than the fourth predefined threshold, the order for cleaning the set of cleanable perimeter segments may be based on a closest head of a perimeter segment relative to the current location of the robotic cleaner. The fourth predefined threshold may be 10, more preferably 9, more preferably 8 perimeter segments, for
example.
The traverse cost for an order may be calculated at least in part by summing the relative distance between the current location of the robotic cleaner and the head of the first perimeter segment in the order, and for each subsequent perimeter segment in the order, the relative distance between the head of that perimeter segment and the tail of the previous perimeter segment in the order. As such, the relative distances between perimeter segments is calculated for each of the plurality of possible orders.
The traverse costs for an order may be calculated at least in part using a weight factor between 0 and 1 to account for the current location of the robotic cleaner.
For example, the traverse cost for an order may be calculated using the formula: Total cost for an order = (weight factor) x (relative distance between the current location of the robotic cleaner and the head of the first perimeter segment in the order) + (1-weight factor) x (for each subsequent perimeter segment in the order, the relative distance between the head of that perimeter segment and the tail of the previous perimeter segment in the order).
The method may further comprise discarding any perimeter segments in the set of perimeter segments that have already been cleaned prior to determining the plurality of possible orders for cleaning the set of perimeter segments. In this way, the same region of the area to be cleaned is not cleaned multiple times, thus providing a more efficient cleaning pattern. The method may comprise determining whether an outer boundary is already cleaned, e.g. based on a cleaning tracking history (which may be stored on the robotic cleaner) and/or using one or more sensors which may be located on the robotic cleaner. Optionally, information relating to whether a perimeter segment is already cleaned or not may be received by the robotic cleaner, e.g. from an external device or source, such as a remote server. The robotic cleaner may update the set of cleanable perimeter segments to mark a perimeter segment as visited/cleaned once it has cleaned that segment. This may stop the robotic cleaner repeatedly cleaning the same perimeter segment.
The method may be performed by a processor located on the robotic cleaner. As such, the robotic cleaner itself may determine an optimized cleaning order of the set of cleanable perimeter segments This may allow for more efficient processing, as communication with an extemal, remote device is not required.
Alternatively, an external device, such as a remote server may perform the method. The optimized order of the set of cleanable perimeter segments may then be transmitted to the robotic cleaner so that the robotic cleaner can perform the edge clean in accordance with the optimized order.
The method may be computer-implemented.
The method may further comprise performing, by the robotic cleaner, an edge clean in a path defined by the optimized order of the set of cleanable perimeter segments.
The method of the first aspect may comprise generating the set of cleanable perimeter segments of an area to be cleaned by a robotic cleaner (e.g. before the order of the cleanable perimeter segments is determined), each cleanable perimeter segment defining a path to be followed by the robotic cleaner around an edge of the area to be cleaned, the method further comprising: receiving an occupancy grid map of the area to be cleaned, wherein the occupancy grid map defines occupied regions of the area to be cleaned; generating a contiguous accessible area grid map of the area to be cleaned based on the occupancy grid map, wherein the accessible area grid map defines the region of the area to be cleaned that the robotic cleaner can access; determining one or more contiguous inaccessible regions in the occupancy grid map based on the contiguous accessible area grid map; determining an outer boundary of each contiguous inaccessible region in the occupancy grid map; and generating the set of cleanable perimeter segments by extracting the outer boundary of each contiguous inaccessible region as a separate perimeter segment, each perimeter segment comprising a plurality of sequential grid elements defining the path to be followed by the robotic cleaner around an edge of the area to be cleaned.
In this way, by determining the edges of the area to be cleaned by the robotic cleaner from the inaccessible regions, an edge clean pattern following along the shape of the edges and corners can be planned. The robotic cleaner is then able to follow a tighter path closer to the corners and edges, thus providing a better cleaning coverage than previous cleaning patterns.
As used herein, the term "contiguous" may be considered as referring to a single, continuous, uninterrupted, connected block. For example, the contiguous accessible area grid map may define a single, connected accessible area (e.g. the area that the robotic cleaner can access from its current location). The single, connected accessible area may be surrounded on all sides by one or more inaccessible areas. A contiguous inaccessible region may define a single, connected, inaccessible region.
The contiguous accessible grid map may be generated based on a current location of the robotic cleaner.
In some examples, the current location of the robotic cleaner may be detected using one or more sensors, which may be located on the robotic cleaner. Alternatively/additionally, the current location of the robotic cleaner may be detected using mapping techniques and/or a known original position of the robotic cleaner. The current location of the robotic cleaner may be received by the robotic cleaner, e.g. from an external device or source, such as a remote server.
The method may also comprise receiving a restriction grid map defining one or more target regions of the area to be cleaned, and/or one or more forbidden regions of the area to be cleaned. The one or more target regions may be regions of the area to be cleaned that should be prioritized or should be cleaned first/next, and the one or more forbidden regions may be regions of the area to be cleaned that should not be cleaned by the robotic cleaner and/or should not be accessed by the robotic cleaner.
The restriction grid map may be user-defined. For example, a user may specify in the restriction grid map the areas of a room (or subsection of a room) which the robotic cleaner should clean first (e.g. especially dirty areas), and areas which the robotic cleaner should not access or clean (e.g. near stairs).
The restriction grid map may be received from an external device or source, such as a remote server or a mobile device.
Optionally, after an outer boundary of each contiguous inaccessible region has been determined, the method may further comprise discarding one or more of the determined outer boundaries.
In particular, the method may comprises discarding any outer boundaries of the one or more contiguous inaccessible regions if they are located in a forbidden region defined in the restriction grid map. In particular, a location of the outer boundaries may be compared to the restriction grid map in order to determine whether any of the outer boundaries are located in a forbidden region. In this way, a validity check is performed such that the robotic cleaner will avoid the regions where cleaning is forbidden or not wanted.
The method may comprise discarding any outer boundaries of the one or more contiguous inaccessible regions if they are already cleaned. In this way, the same region of the area to be cleaned is not cleaned multiple times, thus providing a more efficient cleaning pattern. The method may comprise determining whether an outer boundary is already cleaned, e.g. based on a cleaning tracking history (which may be stored on the robotic cleaner) and/or using one or more sensors which may be located on the robotic cleaner. Optionally, information relating to whether an outer boundary is already cleaned or not may be received by the robotic cleaner, e.g. from an external device or source, such as a remote server. For example, the restriction grid map may also define one or more already-cleaned regions of the area to be cleaned, wherein the one or more already-cleaned regions should not be cleaned (again) by the robotic cleaner. The robotic cleaner may update the set of cleanable perimeter segments to mark a perimeter segment as visited/cleaned once it has cleaned that segment. This may stop the robotic cleaner repeatedly cleaning the same perimeter segment.
The method may comprise discarding any perimeter segments having a number of grid elements less than a predefined threshold. In this way, perimeter segments that are too short may be discarded such that the robotic cleaner does not clean those short perimeter segments. This provides a balance of providing an effective clean of the entire area to be cleaned, with performing the clean as efficiently as possible. In particular, discarding any perimeter segments having a number of grid elements less than a predefined threshold allows for a more efficient clean. The predefined threshold may be 2, 3, 4, 5,... etc. grid elements.
The contiguous accessible area grid map may be a Boolean element grid map, for example (e.g. true indicates accessible).
Generating a contiguous accessible area grid map may comprise performing a flood fill from a current location of the robotic cleaner.
The one or more contiguous inaccessible regions may be determined by running a contiguous region find on the accessible area grid map.
The method may further comprise discarding any inaccessible regions having an area smaller than a predefined threshold. In this way, any inaccessible regions that are too small may be discarded, and thus a cleanable perimeter segment corresponding to an outer boundary of that inaccessible region may not be determined. This allows for a more efficient clean, e.g. by not cleaning around objects that are deemed too small. The predefined threshold may be less 2x2 grid elements, for example.
In some examples, the plurality of sequential grid elements in each perimeter segment define a path to be followed in a left direction along the respective edge. As such, in these examples, the robotic cleaner follows the edges or walls and/or objects in a left direction.
In alternative examples, the plurality of sequential grid elements in each perimeter segment define a path to be followed in a right direction along the respective edge. As such, in these examples, the robotic cleaner follows the edges or walls and/or objects in a right direction.
Optionally, determining an outer boundary of each contiguous inaccessible region may comprise determining a plurality of accessible grid elements in the occupancy grid map adjacent to at least one grid element of an inaccessible region in the occupancy grid map. As such, the accessible grid elements neighbouring the inaccessible region are selected as the outer boundary of the inaccessible region. This allows for a tight cleaning path along an edge.
The outer boundary of each contiguous inaccessible region may be determined based on a shape and/or dimension of the robotic cleaner. In particular, data relating to the shape and/or dimension of the robotic cleaner may be used in the determination of the outer boundary of each contiguous inaccessible region. This data may be stored on the robotic cleaner, or may be received by the robotic cleaner from an external device or source, such as a remote server. In this way, the shape and size of the robotic cleaner is taken into account when the cleaning path is calculated, allowing the robotic cleaner to clean closer to the edges and corners.
The occupancy grid map may be received by the robotic cleaner from an external device or source, such as a server. Alternatively, the occupancy grid map may be generated based on data captured from a sensor of the robotic cleaner, e.g. during a previous clean, such as during an open area clean performed before the edge clean.
Optionally, the method may further comprise processing a cleanable perimeter segment of the area to be cleaned by the robotic cleaner.
Processing the cleanable perimeter segment may comprise: calculating an angular change of the edge at a plurality of waypoints along the cleanable perimeter segment; detecting one or more waypoints corresponding to a turning point of the cleanable perimeter segment, wherein a waypoint corresponds to a turning point if a magnitude of the angular change at the waypoint is greater than or equal to a fifth predefined threshold; sampling a subset of the waypoints, wherein the sampled subset of waypoints includes at least the waypoints corresponding to the turning points; and generating an optimized cleanable perimeter segment, wherein the optimized cleanable perimeter segment comprises the sampled subset of waypoints defining the path to be followed by the robotic cleaner around the edge of the area to be cleaned.
In this way, the resolution of the cleanable perimeter segment is reduced, without losing the detail of any edge corners, whether internal or external corners, thus increasing the efficiency of motion execution of the robotic cleaner. This helps to improve edge clean coverage, whilst increasing the cleaning rate of the edges. This may provide a cleaning pattern with reduced battery costs, and which may also reduce the wear and tear of the robotic cleaner.
The fifth predefined threshold may be between 200 and 90°, more preferably between 30° and 60°, more preferably between 40° and 50°. In preferred examples, the fifth predefined threshold may be 45°.
The sampled subset of waypoints may include one or more straight edge waypoints, wherein a waypoint is a straight edge waypoint if a magnitude of the angular change at the waypoint is less than the fifth predefined threshold. In this way, the sampled subset of waypoints may include some waypoints corresponding to a turning point, and some waypoints corresponding to a straight edge. This may provide sufficient resolution of the cleanable perimeter segment for the robotic cleaner to closely follow the edges.
Preferably, a distance between neighbouring waypoints in the sampled subset is equal to or greater than a sixth predefined threshold. This may improve the efficiency of the edge clean, by providing less resolution of the path to be followed. The sixth predefined threshold may be approximately equal to the size, or diameter, of the robotic cleaner. It may be equal to 10, more preferably 12, more preferably 14, more preferably 16, etc. grid elements, for example. Each grid element may be 20mm x 20mm, for
example.
The distance between neighbouring waypoints in the sampled subset may be equal to or less than a seventh predefined threshold. This may ensure sufficient resolution of the cleanable perimeter segment for the robotic cleaner to closely follow the edges. The distance between neighbouring waypoints may have an upper and lower limit. The sixth predefined threshold may be equal to 10, more preferably 9, more preferably 8, more preferably 7, etc. grid elements, for example.
The processing method may further comprise determining whether, within a subsection of the cleanable perimeter segment having a distance equal to the sixth predefined threshold, there are a plurality of waypoints corresponding to a turning point, and if so: determining the waypoint within the subsection having the largest angular change and maintaining that waypoint; and discarding the other waypoints corresponding to a turning point within the subsection As such, only the turning point with the largest turning angle is maintained as a waypoint. This allows for an accurate representation of the turning point, whilst maintaining a reduced resolution, thus increasing cleaning efficiency.
The angular change of a waypoint may be detected by calculating the angle from a vector from a previous neighbouring waypoint to the waypoint, towards the vector from the waypoint to a next neighbouring waypoint.
The method may comprise comprising shifting each waypoint in the cleanable perimeter segment, or in the optimized cleanable perimeter segment, towards a closest edge of the area to be cleaned. This may further improve the cleaning coverage of the edges and corners, and may reduce the effect of sensor
noise, for example.
Each waypoint may be shifted towards a closest edge by a predefined distance, which may be greater than or equal to lOmm, and less than or equal to 80mm, for example. The predefined distance may be between 20mm and 60mm, more preferably between 30 and 50mm, more preferably 40mm, for example.
A predefined distance of 40mm may correspond to shifting each waypoint two grid elements towards a closest edge, when each grid element is 20mm x 20mm.
A closest edge for each waypoint may be detected by a local sensor of the robotic cleaner. This may be a camera, or other vision sensor, an infrared sensor, or a time of flight sensor, for example.
Each waypoint may be shifted towards a closest edge in a direction perpendicular to a bisector of the angle between a vector from a previous neighbouring waypoint to the waypoint, and the vector from the waypoint to a next neighbouring waypoint. This ensures that the waypoints are shifted in a manner so as to accurately trace the edge.
According to a second aspect of the invention, there is provided a system including one or more processors and a memory, the memory containing machine executable instructions which, when executed on the one or more processors, cause the one or more processors to perform the method of the first aspect.
The system may be located on the robotic cleaner.
Alternatively, the system may be located on an external device remote from the robotic cleaner but in communication (e.g. via an un-wired connection) to the robotic cleaner. The external device may be a remote server, for example.
According to a third aspect, there is provided a robotic cleaner comprising the system of the second aspect.
According to a fourth aspect, there is provided a non-transitory computer readable storage medium containing machine executable instructions which, when executed on a processor, cause the processor to perform the method of the first aspect.
The invention includes the combination of the aspects and preferred features described except where such a combination is clearly impermissible or expressly avoided.
Summary of the Figures
Embodiments and experiments illustrating the principles of the invention will now be discussed with reference to the accompanying figures in which: Figure 1 is a schematic representation of a robotic cleaner; Figure 2 is a schematic representation of a system for controlling a robotic cleaner; Figure 3 is a flow diagram of a method for generating a set of cleanable perimeter segments of an area to be cleaned; Figure 4A is an example occupancy grid map used in the method of Figure 3; Figure 4B is an example restriction grid map used in the method of Figure 3; Figure 40 is an example contiguous accessible area grid map generated in the method of Figure 3; Figure 4D is an example of the result of determining an outer boundary of each inaccessible region of the occupancy grid map of Figure 4A using the contiguous accessible area grid map of Figure 4C; Figure 4E is an example result of a validity check of the determined outer boundaries of the inaccessible regions, based on the restriction grid map of Figure 4B; Figure 4F shows example extracted grid maps with the outer boundary of each contiguous inaccessible region extracted as a separate cleanable perimeter segment; Figure 5 is a flow diagram of a method for processing a cleanable perimeter segment of an area to be cleaned; Figure 6 is a plot of calculated angular changes of waypoints along a cleanable perimeter segment; Figure 7 is a schematic diagram showing the shifting of waypoints according to a method disclosed herein; Figure 8 is a zoomed in version of Figure 7 showing calculation of the direction in which a waypoint is shifted; Figure 9 is a flow diagram of a method for determining an order for cleaning a set of cleanable perimeter segments of an area to be cleaned by a robotic cleaner; and Figure 10 is an example plot 310 of an area to be cleaned with three perimeter segments 312-1, 312-2, 313-3 defined therein.
Detailed Description of the Invention
Aspects and embodiments of the present invention will now be discussed with reference to the accompanying figures. Further aspects and embodiments will be apparent to those skilled in the art. All documents mentioned in this text are incorporated herein by reference.
Figure 1 is a schematic representation of a robotic cleaner 10, which may be used to clean a room, a subsection of a room, or multiple rooms in a building, for example. The robotic cleaner 10 comprises a motor 12 for driving and directing the robotic cleaner 10, a controller 14 for controlling the motor 12, and a memory 16. The controller 14 is configured to control the motor 12 such that the robotic cleaner 10 follows one or more path defined by the controller 14, wherein the path(s) may be stored in the memory 16. The robotic cleaner 10 also comprises one or more cleaning tools which are used to clean the floor, lower walls, and/or other objects in the room, and a power source (not shown). The robotic cleaner 10 may also comprise other components, such as one or more sensors (e.g. cameras, infrared sensors, Time of Flight sensors, accelerometers, gyroscopes etc.), and also a communication interface which may be used to communicate wirelessly with one or more external devices.
Such external devices are shown in Figure 2, which is a schematic of a system 20 for controlling robotic cleaner 10. For completeness, Figure 2 is not to scale. Example external devices include a mobile device 22 and a remote server 24. In Figure 2, mobile device 22 and remote server 24 are both in wireless communication with the robotic cleaner. A user of the mobile device 22 may control the robotic cleaner 10 via mobile device 22.
Robotic cleaner 10 may clean an area to be cleaned (e.g. a room) by first performing an open area clean (e.g. centre of the room), and then an edge clean (e.g. along the walls of the room). The path(s) followed by the robotic cleaner in both the open area clean and the edge clean may be determined by the controller 14 of the robotic cleaner 10, by the remote server 24, or by the mobile device 22, and/or saved in memory 16 of the robotic controller or external memory.
The open area cleaning path may be an oil drop cleaning pattern (e.g. a spiral starting from the centre of the room), or some other cleaning pattern.
In order to determine the path(s) to be followed by the robotic cleaner, a set of cleanable perimeter segments is generated. Each cleanable perimeter segment defines a path to be followed by the robotic cleaner around an edge of the area to be cleaned (e.g. along a wall, and/or around objects such as fu rn itu re) A method 40 for generating a set of cleanable perimeter segments of an area to be cleaned by a robotic cleaner is set out in Figure 3. The method may be performed by the controller 14 of the robotic cleaner 10 itself, as set out below. Alternatively, the method (or a part thereof) may be performed by an external device, e.g. remote server 24, or mobile device 22. If the method is performed by an external device, the set of cleanable perimeter segments may be transmitted to the robotic cleaner 10 (wirelessly). Once generated, the set of cleanable perimeter segments may be stored in memory 16.
At S101 of Figure 3, an occupancy grid map of the area to be cleaned is received by the robotic cleaner 10. An example occupancy grid map 50 is shown in Figure 4A. The occupancy grid map 50 defines the surrounding environment which includes the area to be cleaned 52, and occupied regions 54 of the surrounding environment. Occupied regions 54 may be occupied by objects such as furniture, for example. The occupancy grid map may comprise a plurality of grid elements. Each grid element may be a square grid element, and have the same dimensions. For example, each grid element may be 20mm x 20mm.
The occupancy grid map may also define a current location 56 of the robotic cleaner. The current location 56 of the robotic cleaner may be received from an external source/device such as a remote server, for example. Alternatively, the robotic cleaner may add a current location of the robotic cleaner using information detected using one or more of its sensors and/or one or more of its cameras. Alternatively, or additionally, the current location may be determined using mapping techniques and/or the robotic cleaner's known original position.
The occupancy grid map may be received by the robotic cleaner from an external device or source, such as a server. Alternatively, the occupancy grid map may be generated based on data captured from a sensor of the robotic cleaner, e.g. during a previous clean, such as during an open area clean performed before the edge clean.
At S102, a restriction grid map is received by the robotic cleaner. An example restriction grid map 60 is shown in Figure 4B. The restriction grid map defines one or more target regions 62 of the area to be cleaned, and/or one or more forbidden regions 64 of the area to be cleaned. The one or more target regions 62 may be regions of the area to be cleaned that should be prioritized or should be cleaned first/next, and the one or more forbidden regions 64 may be regions of the area to be cleaned that should not be cleaned by the robotic cleaner and/or should not be accessed by the robotic cleaner.
The restriction grid map may be user-defined. For example, a user may specify in the restriction grid map the areas of a room (or subsection of a room) which the robotic cleaner should clean first (e.g. especially dirty areas), and areas which the robotic cleaner should not access or clean (e.g. near stairs). The user may define the target regions and forbidden regions via mobile device 22, for example. As such, the restriction grid map may be received by the controller 14 of the robotic cleaner 10 from mobile device 22. Alternatively, the restriction grid map may be received from another external device, such as remote server 24. In further examples, the restriction grid map may be stored at the robotic cleaner 10, and is received by the controller 14 from storage 16. The restriction grid map may comprise a plurality of grid elements corresponding to the grid elements of the occupancy grid map. Each grid element may be a square grid element, and have the same dimensions. For example, each grid element may be 20mm x 20mm.
For completeness, 3102 is an optional step in method 40.
At S103, a contiguous accessible area grid map of the area to be cleaned is generated by the robotic cleaner. The contiguous accessible area grid map defines the region of the area to be cleaned that the robotic cleaner can access, and is generated based on the occupancy grid map, and optionally also the current location of the robotic cleaner. The contiguous accessible area grid map may be generated by performing a flood fill (e.g. a circular navigability mask without considering the shape and orientation of the area to be cleaned) from the current location of the robotic cleaner in the occupancy grid map. The contiguous accessible area grid map may be a Boolean element grid map (e.g. true indicates accessible grid element). Again, the contiguous accessible area grid map may comprise a plurality of grid elements corresponding to the grid elements of the occupancy grid map. Each grid element may be a square grid element, and have the same dimensions. For example, each grid element may be 20mm x 20mm.
An example contiguous accessible area grid map 70, which defines the region of the area to be cleaned that the robotic cleaner can access 72, is shown in Figure 4C.
At 5104, one or more contiguous inaccessible regions in the occupancy grid map are determined based on the contiguous accessible area grid map. In particular a contiguous region find may be run on the accessible area grid map in order to determine the one or more contiguous inaccessible regions in the occupancy grid map.
Optionally, the method may comprise discarding any contiguous inaccessible regions having an area smaller than a predefined threshold. This means that any inaccessible regions that are deemed too small to clean around their edges are discarded and thus not cleaned. The predefined threshold may be user defined, and/or defined in the memory 16 of the robotic cleaner 10.
At 8105, an outer boundary of each contiguous inaccessible region in the occupancy grid map is determined. This step may comprise determining a plurality of accessible grid elements in the occupancy grid map adjacent to the at least one grid element of a contiguous inaccessible region in the occupancy grid map. In this way, the accessible grid elements neighbouring each inaccessible region are selected as the outer boundary of that inaccessible region. The outer boundary of each contiguous inaccessible region may be determined based on a shape and/or dimension of the robotic cleaner. In this way, the outer boundary may not be determined as the neighbouring set of accessible grid elements, but a set of accessible grid elements a predetermined distance (which corresponds to a shape and/or dimension of the robotic clean) away from the inaccessible region. In this way, the robotic cleaner can travel as close as possible to the inaccessible region, despite its size/shape.
Figure 4D shows the result of S105; the occupancy grid map 50 with the outer boundary 58 of each contiguous inaccessible region marked thereon.
S106 is an optional step. At 5106, a validity check is performed to determined if one or more of the outer boundaries should be discarded. This validity check may be based on the restriction grid map received in S102.
In particular, any outer boundaries located in a forbidden region of the restriction grid map may be discarded. Similarly, any outer boundaries not located in the target region of the restriction grid map may be discarded.
Furthermore, any outer boundaries that have already been cleaned by the robotic cleaner may be discarded.
The result 80 of the validity check of S106 is shown in Figure 4E. Here, only three outer boundaries 59 are maintained following the validity check; each of these outer boundaries 59 are in the target region 62 of the restriction grid map 60 received at S102. None of the outer boundaries 59 shown in Figure 4E are in the forbidden region 64 of the restriction grid map 60.
At S107, a set of cleanable perimeter segments are generated. Each cleanable perimeter segment comprises a plurality of sequential grid elements defining the path to be followed by the robotic cleaner. The outer boundary of each contiguous inaccessible region is extracted as a separate perimeter segment 59a-c, as shown in grid maps 90A-90C of Figure 4F.
Optionally, the method may comprise discarding any perimeter segments having a number of grid elements less than a predefined threshold, which may be user defined and/or saved in memory 16. In this way, perimeter segments that are deemed too short are not cleaned.
Each perimeter segment may define a path to be followed along a same direction along the respective edge. The grid maps 90A-90C of Figure 4F are upside down to the real grid, and thus each perimeter segment 59a-c defines a path to be followed in a left direction along the respective edge. In other examples, each perimeter segment may define a path to be followed in a right direction along the respective edge.
The set of cleanable perimeter segments may then be output, e.g. to a motor of the robotic cleaner, such that the robotic cleaner follows the path of the cleanable perimeter segments during an edge clean.
For completeness, the method steps of method 40 may not necessarily be performed in the order shown in Figure 3.
A method 100 for processing a cleanable perimeter segment of the area to be cleaned by the robotic cleaner is set out in Figure 5. In some examples, each of the set of cleanable perimeter segments generated in method 40 shown in Figure 3 may be processed according to the method 100 of Figure 5.
The method 100 may be performed by the controller 14 of the robotic cleaner 10 itself, as set out below. Alternatively, the method (or a part thereof) may be performed by an external device, e.g. remote server 24, or mobile device 22. If the method is performed by an external device, the optimized cleanable perimeter segment(s) may be transmitted to the robotic cleaner 10 (wirelessly). Once generated, the optimized cleanable perimeter segment(s) may be stored in memory 16.
First, a cleanable perimeter segment is received (not shown in Figure 5). The cleanable perimeter segment may be one of the set of cleanable perimeter segments generated in method 40 of Figure 3. The cleanable perimeter segment may be received by the controller 14 from an external source, e.g. a remote server, or from memory 16 of the robotic cleaner 10.
At 3201, an angular change of the edge corresponding to the cleanable perimeter segment is calculated at a plurality of waypoints along the cleanable perimeter segment. The angular change of a particular waypoint may be calculated by calculating an angle from a vector from a previous neighbouring waypoint to the particular waypoint, towards the vector from the particular waypoint to a next neighbouring waypoint.
Each waypoint for which the angular change is calculated may correspond to each grid element of the cleanable perimeter segment. Therefore, the angular change of the edge may be calculated for each grid element of the perimeter segment.
Next, at 3202, one or more waypoints corresponding to a turning point of the cleanable perimeter segment are detected. A waypoint corresponds to a turning point if a magnitude of the angular change at the waypoint is greater than or equal to a predefined angular threshold. By comparing a magnitude of the angular change to the predefined angular threshold, both internal and external corners can be detected.
The predefined angular threshold may be between 20° and 80°, more preferably between 30° and 600, more preferably between 40° and 50°. In preferred examples, the predefined angular threshold may be 45°.
An example plot 110 of the calculated angular changes of waypoints along the cleanable perimeter segment is shown in Figure 6. Any waypoints with a corresponding magnitude angular change of greater than 45° are considered as turning points.
At S203, a subset of the waypoints are sampled. The sampled subset includes at least the waypoints corresponding to the turning points. Preferably, the sampled subset of waypoints also includes one or more straight edge waypoints. A waypoint may be a straight edge waypoint if a magnitude of the angular change is less than the predefined angular threshold (e.g. less than 45°). Alternatively, a waypoint may be a straight edge waypoint if a magnitude of the corresponding angular change is less than 40°, more preferably, 30°, more preferably 20°, etc. Accordingly, the sampled subset of waypoints preferably includes the waypoints corresponding to the turning points, and some waypoints corresponding to a straight edge.
Preferably the distance between neighbouring waypoints in the sampled subset of waypoints is in a range between a lower predefined distance threshold and a higher predefined distance threshold. This ensures that there is sufficient resolution to accurately track the edge when cleaning, without having a too high resolution which may lead to an inefficient clean and requiring increased processing power.
Preferably the distance between neighbouring waypoints is between 3 and 7 grid elements, e.g. 4 grid elements for example. Each grid element may be 20mm x 20mm in dimension, for example.
Method 100 may further comprise determining whether, within a subsection of the cleanable perimeter segment (wherein the subsection may have a distance equal to the lower predefined distance threshold, or the higher predefined distance threshold), there are a plurality of waypoints corresponding to a turning point. If there are a plurality of waypoints corresponding to a turning point within the subsection of the cleanable perimeter segment, the method may further comprise determining the waypoint within the subsection having the largest angular change and maintaining that waypoint, but discarding the other waypoints corresponding to a turning point within the subsection.
Accordingly, only the turning point with the largest turning angle is maintained as a waypoint in a subsection of the cleanable perimeter distance equal to the predefined shortest distance between waypoints.
At S204 an optimized cleanable perimeter segment is generated. The optimized cleanable perimeter segment comprises the sampled subset of waypoints and defines the path to be followed by the robotic cleaner around the edge of the area to be cleaned.
Optionally, at S205, and as shown in schematic diagram 120 of Figure 7, each waypoint in the optimized cleanable perimeter segment is shifted towards a closest edge of the area to be cleaned (e.g. from position 122 to position 124. Each waypoint may be shifted by a predefined distance, which may be approximately 40mm, or two grid elements, for example.
As shown in Figure 7, a particular waypoint is shifted towards a closest edge in a direction perpendicular to a bisector of the angle between a vector from a previous neighbouring waypoint to the particular waypoint, and the vector from the particular waypoint to a next neighbouring waypoint. Figure 8 is a zoomed in version of Figure 8, with the angles labelled to show the direction in which a particular waypoint b is shifted.
In the schematic diagram 130 of Figure 7, V1 is the vector between the previous neighbouring waypoint a and the particular waypoint b, and V2 is the vector between the particular waypoint b and the next neighbouring waypoint c. V1' is the extension of vector V1 used to help illustrate the angle e between V1 and V2. Therefore, the angle from vector V1 from a previous neighbouring waypoint a to the particular waypoint b, towards the vector V2 from the particular waypoint B to a next neighbouring waypoint c is used to calculate the angular change of the edge at waypoint b. Bisector B of the angle e between V1 and V2 is shown in Figure 8. Waypoint b is then shifted towards the edge in a direction perpendicular to the bisector B, as shown by arrows in Figure 7.
A closest edge for each waypoint may be detected by a local sensor of the robotic cleaner, such as a camera, vision sensor, infrared sensor, or time of flight sensor, for example.
A method 300 for determining an order for cleaning a set of cleanable perimeter segments of an area to be cleaned by a robotic cleaner, is shown in Figure 9. Each cleanable perimeter segment defines a path to be followed by the robotic cleaner around an edge of the area to be cleaned from a head of the perimeter segment to a tail of the perimeter segment. In some examples, an order of the set of cleanable perimeter segments generated in method 40 shown in Figure 3 may be ordered according to the method 200 shown in Figure 9.
The method 100 may be performed by the controller 14 of the robotic cleaner 10 itself, as set out below.
Alternatively, the method (or a part thereof) may be performed by an external device, e.g. remote server 24, or mobile device 22. If the method is performed by an external device, the optimized cleanable perimeter segment(s) may be transmitted to the robotic cleaner 10 (wirelessly). Once generated, the optimized cleanable perimeter segment(s) may be stored in memory 16.
First, a set of cleanable perimeter segments is received (not shown in Figure 9). The set of cleanable perimeter segments may be the set of cleanable perimeter segments generated in method 40 of Figure 3.
The set of cleanable perimeter segments may be received by the controller 14 from an external source, e.g. a remote server, or from memory 16 of the robotic cleaner 10.
At S301, a plurality of possible orders for cleaning the set of cleanable perimeter segments are determined. Optionally, all possible orders are determined.
Figure 10 shows an example plot 310 of an area to be cleaned with three perimeter segments 312-1, 312-2, 313-3 defined therein. The perimeter segments extend from a respective head (noted with 1, 2 and 3 for perimeter segments 312-1,312-2, 312-3, respectively, in Figure 10), to a respective tail. The robotic cleaner's current location is also shown in plot 310, labelled 314.
Based on the three perimeter segments shown in Figure 10, there are six possible orders, as follows: Possible orders 314 > 312-1 > 312-2 > 312-3 314 > 312-2 > 312-1 >312-3 314 > 312-2 > 312-3 > 312-1 314 > 312-3 > 312-2 > 312-1 314 > 312-3 > 312-1 >312-2 314 > 312-1 > 312-3 > 312-2 Next, at S302, for each of the plurality of possible orders, a traverse cost for cleaning the set of cleanable perimeter segments is calculated. The traverse cost for each of the plurality of possible orders is calculated based on a current location of the robotic cleaning device, and the relative distances between the cleanable perimeter segments in the respective order. In particular, the traverse cost for an order may be calculated at least in part by summing the relative distance between the current location of the robotic cleaner and the head of the first perimeter segment in the order, and for each subsequent perimeter segment in the order, the relative distance between the head of that perimeter segment and the tail of the previous perimeter segment in the order.
For example, for the example plot shown in Figure 10, the calculated traverse costs may be as follows: Order Total traverse costs 314 > 312-1 > 312-2 > 312-3 6 + 4 + 3 = 13 314 > 312-2 > 312-1 > 312-3 4 + 6 + 12 = 22 314 > 312-2 > 312-3 > 312-1 4 + 3 + 11 =18 314 > 312-3 > 312-2 > 312-1 11 + 5 + 6 = 22 314 > 312-3 > 312-1 >312-2 11 + 11 + 4 = 26 314 > 312-1 > 312-3 > 312-2 6 + 12 + 5 = 23 Here, for each order, the number of grid elements between (i) the current location of the robotic cleaner and the head of the first perimeter segment; (ii) the tail of the first perimeter segment and the head of the second perimeter segment; and (Hi) the tail of the second perimeter segment and the head of the third perimeter segment, are summed to determine the total traverse costs.
Finally at S303, an optimized order for cleaning the set of cleanable perimeter segments is determined based on the calculated traverse costs for each of the plurality of possible orders. In particular, the optimized order may be the order with the smallest traverse costs.
As such, returning to the example plot shown in Figure 10, the optimized order with the smallest traverse cost is the order 314> 312-1 >312-2 > 312-3 (which has the smallest total traverse cost of 13 grid elements).
For comparison, if the order is chosen based on a closest perimeter segment rather than using method 200, the order chosen would be 314> 312-2> 312-3 > 312-1, which has a total traverse cost of 18 grid elements. This highlights how optimizing the order of cleaning the cleanable perimeter segments according to method 200 reduces total traverse time and thus results in a more efficient edge clean.
The traverse costs for an order may be calculated at least in part using a weight factor between 0 and 1 to account for the current location of the robotic cleaner. This balances the distance between the robotic cleaner's current location and the perimeter section's head and traverse distance among different perimeter sections. The traverse cost for an order may be calculated using the following formular: Total cost for an order = (weight factor) x (relative distance between the current location of the robotic cleaner and the head of the first perimeter segment in the order) + (1-weight factor) x (for each subsequent perimeter segment in the order, the relative distance between the head of that perimeter segment and the tail of the previous perimeter segment in the order).
The optimized order may be disregarded under a number of conditions.
In particular, the optimized order may be disregarded if the distance between the robotic cleaner's current location and the head of the first perimeter segment in the optimized order is too large (i.e. greater than a predefined threshold). In these cases, the order for cleaning the set of cleanable perimeter segments is based on a closest head of a perimeter segment relative to the current location of the robotic cleaner.
Alternatively/additionally, the optimized order may be disregarded if the distance between the current location of the robotic cleaner and a head of a perimeter segment different to the first perimeter segment in the optimized order is less than predefined threshold. In these cases, the order for cleaning the set of cleanable perimeter segments is based on a closest head of a perimeter segment relative to the current location of the robotic cleaner.
As such, the optimized order may be ignored if (i) the first perimeter segment in the optimized order is too far away; or (ii) there is a very close alternative perimeter segment.
The traverse costs for each possible order, and the optimized order, may be calculated only when one or more conditions are met.
A first condition may be that the distance between the current location of the robotic cleaner and a head of a perimeter segment is greater than a predefined threshold. As such, the optimized method may not be performed when there is a very close perimeter segment. In these cases, the order for cleaning the set of cleanable perimeter segments is based on a closest head of a perimeter segment relative to the current location of the robotic cleaner.
A second condition may be when the number of possible orders for cleaning the set of cleanable perimeter segments is less than a predefined threshold. As such, there is a maximum number of perimeter segments for which the optimized order may be calculated for. This balances the need for an optimized route with the additional processing costs required to determine the optimized route.
The method may further comprise discarding any perimeter segments in the set of perimeter segments that have already been cleaned prior to determining the plurality of possible orders for cleaning the set of perimeter segments. In this way, the same region of the area to be cleaned is not cleaned multiple times, thus providing a more efficient cleaning pattern.
After the set of cleanable perimeter segments have been generated, processed, and an optimized order detected, the robotic cleaner may perform an edge clean in a path defined by the optimized order of the processed set of cleanable perimeter segments. This may provide an efficient edge clean, which closely matches the edges and corners, thus providing a more thorough edge and corner clean.
The features disclosed in the foregoing description, or in the following claims, or in the accompanying drawings, expressed in their specific forms or in terms of a means for performing the disclosed function, or a method or process for obtaining the disclosed results, as appropriate, may, separately, or in any combination of such features, be utilised for realising the invention in diverse forms thereof.
While the invention has been described in conjunction with the exemplary embodiments described above, many equivalent modifications and variations will be apparent to those skilled in the art when given this disclosure. Accordingly, the exemplary embodiments of the invention set forth above are considered to be illustrative and not limiting. Various changes to the described embodiments may be made without departing from the spirit and scope of the invention.
For the avoidance of any doubt, any theoretical explanations provided herein are provided for the purposes of improving the understanding of a reader. The inventors do not wish to be bound by any of these theoretical explanations.
Any section headings used herein are for organizational purposes only and are not to be construed as limiting the subject matter described.
Throughout this specification, including the claims which follow, unless the context requires otherwise, the word "comprise" and "include", and variations such as "comprises", "comprising", and "including" will be understood to imply the inclusion of a stated integer or step or group of integers or steps but not the exclusion of any other integer or step or group of integers or steps.
It must be noted that, as used in the specification and the appended claims, the singular forms "a," "an," and "the" include plural referents unless the context clearly dictates otherwise. Ranges may be expressed herein as from "about" one particular value, and/or to "about" another particular value. When such a range is expressed, another embodiment includes from the one particular value and/or to the other particular value. Similarly, when values are expressed as approximations, by the use of the antecedent "about," it will be understood that the particular value forms another embodiment. The term "about" in relation to a numerical value is optional and means for example +/-10%.

Claims (22)

  1. Claims: 1. A method for determining an order for cleaning a set of cleanable perimeter segments of an area to be cleaned by a robotic cleaner, each cleanable perimeter segment defining a path to be followed by the robotic cleaner around an edge of the area to be cleaned from a head of the perimeter segment to a tail of the perimeter segment, the method comprising: determining a plurality of possible orders for cleaning the set of cleanable perimeter segments; calculating, for each of the plurality of possible orders, a traverse cost for cleaning the set of cleanable perimeter segments, wherein the traverse cost for each of the plurality of possible orders is calculated based on a current location of the robotic cleaning device and the relative distances between the cleanable perimeter segments in the respective order; determining an optimized order for cleaning the set of cleanable perimeter segments based on the calculated traverse costs for each of the plurality of possible orders.
  2. 2. The method of claim 1, wherein the optimized order is the order with the smallest traverse cost.
  3. 3. The method of claim 1 of claim 2, wherein the optimized order is disregarded if the distance between the current location of the robotic cleaner and the head of the first perimeter segment in the optimized order is greater than a first predefined threshold.
  4. 4. The method of claim 3, wherein when the optimized order is disregarded, the order for cleaning the set of cleanable perimeter segments is based on a closest head of a perimeter segment relative to the current location of the robotic cleaner.
  5. 5. The method of any preceding claim, wherein the traverse cost is calculated and the optimized order is determined only when the distance between the current location of the robotic cleaner and a head of a perimeter segment is greater than a second predefined threshold.
  6. 6. The method of claims, wherein, when the distance between the current location of the robotic cleaner and a head of a perimeter segment is less than the second predefined threshold, the order for cleaning the set of cleanable perimeter segments is based on a closest head of a perimeter segment relative to the current location of the robotic cleaner.
  7. 7. The method of any of claims 1-4, wherein the optimized order is disregarded if the distance between the current location of the robotic cleaner and a head of a perimeter segment different to the first perimeter segment in the optimized order is less than a third predefined threshold.
  8. 8. The method of claim 7, wherein, when the distance between the current location of the robotic cleaner and a head of a perimeter segment different to the first perimeter segment in the optimized order is greater than the third predefined threshold, the order for cleaning the set of cleanable perimeter segments is based on a closest head of a perimeter segment relative to the current location of the robotic cleaner.
  9. 9. The method of any preceding claim, wherein the traverse cost for each possible order is calculated and the optimized order is determined only when the number of possible orders for cleaning the set of cleanable perimeter segments is less than a fourth predefined threshold.
  10. 10. The method of claim 9, wherein, when the number of possible orders for cleaning the set of cleanable perimeter segments is greater than the fourth predefined threshold, the order for cleaning the set of cleanable perimeter segments is based on a closest head of a perimeter segment relative to the current location of the robotic cleaner.
  11. 11. The method of any preceding claim, wherein the traverse cost for an order is calculated at least in part by summing the relative distance between the current location of the robotic cleaner and the head of the first perimeter segment in the order, and for each subsequent perimeter segment in the order, the relative distance between the head of that perimeter segment and the tail of the previous perimeter segment in the order.
  12. 12. The method of any preceding claim, wherein the traverse costs for an order is calculated at least in part using a weight factor between 0 and 1 to account for the current location of the robotic cleaner.
  13. 13. The method of any preceding claim, wherein the traverse cost for an order is calculated using the 30 formula: Total cost for an order = (weight factor) x (relative distance between the current location of the robotic cleaner and the head of the first perimeter segment in the order) + (1-weight factor) x (for each subsequent perimeter segment in the order, the relative distance between the head of that perimeter segment and the tail of the previous perimeter segment in the order).
  14. 14. The method of any preceding claim, wherein each cleanable perimeter segment comprises a plurality of sequential grid elements defining the path to be followed by the robotic cleaner between the head and the tail of the perimeter segment.
  15. 15. The method of any preceding claim, wherein the area to be cleaned by a robotic cleaner is defined as an occupancy grid map comprising a plurality of grid elements.
  16. 16. The method of claim 15, wherein the relative distances between the cleanable perimeter segments is based on the number of grid elements between the respective perimeter segments.
  17. 17. The method of any preceding claim, further comprising: discarding any perimeter segments in the set of perimeter segments that have already been cleaned prior to determining the plurality of possible orders for cleaning the set of perimeter segments.
  18. 18. The method of any preceding claim, wherein the method is computer-implemented.
  19. 19. The method of any preceding claim, wherein the method is performed by a processor located on the robotic cleaner.
  20. 20. A system including one or more processors and a memory, the memory containing machine executable instructions which, when executed on the one or more processors, cause the one or more processors to perform the method of any preceding claim
  21. 21. A robotic cleaner comprising the system of claim 20.
  22. 22. A non-transitory computer readable storage medium containing machine executable instructions which, when executed on a processor, cause the processor to perform the method of any of claims 1-19.
GB2117851.2A 2021-12-10 2021-12-10 Method for edge cleaning Pending GB2615512A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
GB2117851.2A GB2615512A (en) 2021-12-10 2021-12-10 Method for edge cleaning
PCT/GB2022/052929 WO2023105186A1 (en) 2021-12-10 2022-11-18 Method for edge cleaning

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB2117851.2A GB2615512A (en) 2021-12-10 2021-12-10 Method for edge cleaning

Publications (2)

Publication Number Publication Date
GB202117851D0 GB202117851D0 (en) 2022-01-26
GB2615512A true GB2615512A (en) 2023-08-16

Family

ID=80080069

Family Applications (1)

Application Number Title Priority Date Filing Date
GB2117851.2A Pending GB2615512A (en) 2021-12-10 2021-12-10 Method for edge cleaning

Country Status (2)

Country Link
GB (1) GB2615512A (en)
WO (1) WO2023105186A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200069140A1 (en) * 2018-08-31 2020-03-05 Neato Robotics, Inc. Zone cleaning apparatus and method
CN112327841A (en) * 2020-10-29 2021-02-05 广东杜尼智能机器人工程技术研究中心有限公司 Optimal edgewise path planning and sorting method for sweeping robot

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3841220B2 (en) * 2004-01-30 2006-11-01 船井電機株式会社 Autonomous traveling robot cleaner
EP4068035A4 (en) * 2019-11-25 2023-12-06 Murata Machinery, Ltd. Autonomous traveling dolly, control method, and program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200069140A1 (en) * 2018-08-31 2020-03-05 Neato Robotics, Inc. Zone cleaning apparatus and method
CN112327841A (en) * 2020-10-29 2021-02-05 广东杜尼智能机器人工程技术研究中心有限公司 Optimal edgewise path planning and sorting method for sweeping robot

Also Published As

Publication number Publication date
WO2023105186A1 (en) 2023-06-15
GB202117851D0 (en) 2022-01-26

Similar Documents

Publication Publication Date Title
EP3764186B1 (en) Method for controlling autonomous mobile robot to travel along edge
US11175670B2 (en) Robot-assisted processing of a surface using a robot
US11808580B1 (en) Methods for finding the perimeter of a place using observed coordinates
KR102434212B1 (en) Robot navigation with 2D and 3D route planning
EP3552072B1 (en) Robotic cleaning device with operating speed variation based on environment
EP2870513B1 (en) Autonomous mobile robot and method for operating the same
KR101372482B1 (en) Method and apparatus of path planning for a mobile robot
JP2020509500A (en) Control method of autonomous mobile robot
US9599987B2 (en) Autonomous mobile robot and method for operating the same
JP2023513556A (en) Cleaning control method based on dense obstacles
CN104737085A (en) Robot and method for autonomous inspection or processing of floor areas
CN113219993B (en) Path planning method and cleaning robot
JP6074205B2 (en) Autonomous mobile
CN112237403B (en) Covering path generation method for cleaning device and cleaning device
GB2615512A (en) Method for edge cleaning
GB2613620A (en) Method for edge cleaning
GB2613623A (en) Method for edge cleaning
KR101970191B1 (en) Apparatus and method for controlling cleaning function and robotic cleaner with the apparatus
CN111897336A (en) Method and chip for judging ending of robot edgewise behavior and robot
WO2023209350A1 (en) Method for edge cleaning
Yean et al. An efficient grid based navigation of wheeled mobile robots based on visual perception
Dhawan et al. Path Based Mapping Technique for Robots
US20210191415A1 (en) Area profile map learning for robotic device
KR20240081011A (en) Self-driving robot and method of generating movement path thereof
CN114563797A (en) Automatic map exploration system and method