IP Library Granted Patent US 10,488,865
Granted Patent B2
US 10,488,865 · App. 16/198,393 · Granted Nov 26, 2019

Methods and systems for robotic surface coverage

Inventors: Ali Ebrahimi Afrouzi (Toronto, CA); Lukas Fath (Toronto, CA)
Assignee: Al Incorporated
G05D1/0219G05D1/0217G05D1/0274G05D2201/0203Y10S901/01
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,488,865
App. No.
16/198,393
Granted
Nov 26, 2019
Kind
B2
Abstract

Techniques for minimizing redundancy of surface coverage of a workspace by a robotic device are presented, the techniques including: obtaining, with one or more processors of a robot, a map of a workspace, the map quantizing the workspace into a plurality of cells, each cell corresponding to an area of the workspace; segmenting, with the one or more processors of the robot, the workspace into a plurality of zones, each zone having a subset of the plurality of cells; determining, with the one or more processors of the robot, a sequence of the zones among a plurality of candidate sequences based on an effect of the sequence on a cost of a cost function that is based on travel distance of the robot through the sequence; and causing, with the one or more processors of the robot, the robot to traverse the zones in the determined sequence.

Claims (71)

1. A robot, comprising:

an actuator configured to move the robot in a workspace;

a sensor configured to sense the workspace;

one or more processors including at least one processor configured to obtain data from the sensor and control the actuator; and

memory communicatively coupled with at least one of the one or more processors and storing instructions that when executed by the at least one of the one or more processors effectuate operations comprising:

obtaining, with the one or more processors, a map of the workspace, the map quantizing the workspace into a plurality of cells, each cell corresponding to an area of the workspace;

segmenting, with the one or more processors, the workspace into a plurality of zones, each zone having a subset of the plurality of cells, wherein segmenting the workspace comprises iteratively, until a stopping condition is detected, through a plurality of iterations, adding cells to at least some of the zones based on the added cells being adjacent perimeters of the zones to which the cells are added;

determining, with the one or more processors, a sequence of the zones among a plurality of candidate sequences based on an effect of the sequence on a cost of a cost function that is based on travel distance of the robot through the sequence; and

causing, with the one or more processors, the robot to traverse the zones in the determined sequence.

2. The robot of claim 1 , wherein:

the cells are unit tiles of a regular Euclidean tiling;

the zones and the sequence are jointly optimized or separately optimized;

the robot is a floor-cleaning robot; and

traversing the zones comprises traversing at least some of the zones with a serpentine coverage path in which a cleaning tool is applied.

3. The robot of claim 1 , wherein the operations comprise:

iteratively adjusting size of at least one of the zones based on the cost function or another cost or reward function.

4. The robot of claim 1 , wherein:

the number of zones is less than 14;

the number of candidate sequences is less than 100 billion;

the sequence is determined without performing a brute force search of more than 0.1% of the candidate sequence by the one or more processors; and

the one or more processors are on-board processors of a battery-powered floor cleaning robot.

5. The robot of claim 1 , wherein:

the sequence is determined with a greedy optimization that adjusts the sequence based on incremental adjustments that reduce cost relative to a current sequence.

6. The robot of claim 1 , wherein:

the sequence is determined based on starting or ending locations of coverage paths in at least some of the zones.

7. The robot of claim 1 , wherein segmenting the workspace comprises:

adding cells to at least part of a perimeter of a given zone among the plurality of zones; and

removing cells from at least part of the perimeter of the given zone in an iteration of an iterative adjustment in which the cells are added.

8. The robot of claim 1 , wherein segmenting the workspace comprises:

determining to add a cell adjacent a perimeter of a given zone to the given zone based on at least one of the following factors: size of the given zone, distance of the cell from a center of the given zone, order of the given zone in the sequence, or a score indicative of smoothness of the perimeter of the given zone.

9. The robot of claim 1 , wherein segmenting the workspace comprises:

determining to add a cell adjacent a perimeter of a given zone to the given zone based on each of the following factors: a size of the given zone, distance of the cell from a center of the given zone, order of the given zone in the sequence, and a score indicative of smoothness of the perimeter of the given zone.

10. The robot of claim 1 , wherein:

at least some of the zones and at least part of the sequence are adjusted based on performance of the robot in the workspace determined based on data from the sensor.

11. The robot of claim 1 , wherein:

the zones, coverage paths in the zones, or the sequence is adjusted in response to detecting areas of duplicate measured coverage of the robot; and

coverage is measured with the sensor.

12. The robot of claim 1 , wherein:

the zones, coverage paths in the zones, or the sequence is specified by a policy of the robot that maps state of the robot to actions to be taken by the robot when in the respective state; and

the operations comprise adjusting the policy based on a reward function.

13. The robot of claim 12 , wherein:

the reward function is based on at least one of measured surface coverage, travel distance, duplicate coverage, or coverage time.

14. The robot of claim 12 , wherein:

the reward function is based on each of measured surface coverage, travel distance, duplicate coverage, and coverage time.

15. The robot of claim 1 , wherein:

the cost function is further based on at least one of measured surface coverage, duplicative coverage, or coverage time.

16. The robot of claim 1 , wherein:

the cost function is further based on each of measured surface coverage, duplicative coverage, or coverage time.

17. The robot of claim 1 , wherein:

traversing the zones comprises cleaning a floor under a coverage path in at least some of the zones with a vacuum and measuring coverage with an odometer; and

the zones are adjusted based on distance measured and duplicate coverage detected with the odometer.

18. The robot of claim 1 , wherein:

coverage of the workspace by the robot is determined by the robot based on a policy of the robot; and

the operations comprise adjusting the policy to increase a reward of a reward function or reduce a cost of a cost function with an unsupervised reinforcement learning model.

19. The robot of claim 1 , wherein segmenting comprises:

detecting an interface between a wall and a doorway indicated by the map; and

determining a boundary between a first zone and a second zone among the plurality of zones based on the detected interface and a distance from the detected interface to a perimeter of the map.

20. The robot of claim 1 , wherein segmenting comprises:

selecting a plurality of locations in the map;

determining, for each location among the plurality of locations, a respective plurality of distances to a perimeter of the map at each of a plurality of different angles; and

determining at least some of the plurality of zones based on at least some of the plurality of distances.

21. The robot of claim 20 , wherein determining at least some of the plurality of zones based on at least some of the plurality of distances comprises:

selecting a first location on the perimeter where a shortest ray among a plurality of rays from a second location among the plurality of locations intersects the perimeter; and

determining a boundary between a first zone and a second zone among the plurality of zones based on the first location and the second location.

22. A method, comprising:

obtaining, with one or more processors of a robot, a map of a workspace, the map quantizing the workspace into a plurality of cells, each cell corresponding to an area of the workspace;

segmenting, with the one or more processors of the robot, the workspace into a plurality of zones, each zone having a subset of the plurality of cells, wherein segmenting the workspace comprises iteratively, until a stopping condition is detected, through a plurality of iterations, adding cells to at least some of the zones based on the added cells being adjacent perimeters of the zones to which the cells are added;

determining, with the one or more processors of the robot, a sequence of the zones among a plurality of candidate sequences based on an effect of the sequence on a cost of a cost function that is based on travel distance of the robot through the sequence; and

causing, with the one or more processors of the robot, the robot to traverse the zones in the determined sequence.

23. The robot of claim 1 , wherein obtaining the map of the workspace comprises:

quantizing the workspace into a plurality of cells encoded in a bitmap, each cell encoded in the bitmap corresponding to an area of the workspace and each unit cell encoded in the bitmap having a respective value, wherein at least some of the respective values indicate that the corresponding cell is occupied and at least some of the respective values indicate that the corresponding cell is un-occupied.

Continuity (8)
Continuation In Part 15619449 · Jun 10, 2017
Continuation 14817952 · Aug 4, 2015
Provisional Application 62092800 · Dec 16, 2014
Provisional Application 62666266 · May 3, 2018
Provisional Application 62658705 · Apr 17, 2018
Provisional Application 62644708 · Mar 19, 2018
Provisional Application 62590205 · Nov 22, 2017
Related Publication 20190094870A1 · Mar 28, 2019
Cited By (15)
US 12,246,453 US 12,296,694 US 12,369,509 US 12,425,197 US 12,443,180 US 12,472,611 US 12,493,298 US 12,510,892 US 12,564,130 US 12,653,097 US 12,677,737 US 12,690,518 US 12,696,838 US 12,710,766 US 12,714,019