Surface coverage optimization method for autonomous mobile machines
First Claim
1. A method for covering a surface by a robotic device comprising:
- establishing a two-dimensional map of a workspace using data received from an outside source or gathered from one or more laser rangefinders positioned on the robotic device;
dividing the two-dimensional map into a grid of cells of predetermined size;
orienting the cell grid within the two-dimensional map such that the maximum number of whole cells result;
identifying each cell as free, occupied, or unknown;
localizing the robotic device within the two-dimensional map;
completing the two-dimensional map by driving to cells identified as unknown and gathering more data by the one or more laser rangefinders until all unknown cells have been visited and identified as either occupied or free;
connecting the centers of all free cells to create a spanning tree, wherein the spanning tree is constructed with a minimum number of corners;
driving the robotic device along an outer edge of the spanning tree until all whole cells in the two-dimensional map are covered at least once by the robotic device;
monitoring a number of collisions incurred by the robotic device during a work session;
calculating a negative reward whenever a control or action executed by the robotic device results in a collision during the work session;
calculating a negative reward based on cells retraced by the robotic device during the work session, cells left uncovered at the end of the work session, and the amount of time taken to complete the work session;
calculating a positive reward upon completion of the work session; and
amalgamating all the rewards incurred during or upon completion of the work session to obtain a value metric for the spanning tree used during the work session.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for devising a surface coverage scheme within a workspace. Space within a two-dimensional map of the workspace is identified as free, occupied, or unknown. The map is divided into a grid of cells. A loop-free spanning tree is constructed within all free cells within the grid. The robotic device is programmed to drive along the outside edge of the spanning tree to cover all portions of each free cell at least once upon completing the path. The system monitors several performance parameters during each work session and assigns negative rewards based on these parameters. A large positive reward is assigned upon completion of the surface coverage. Spanning trees with at least slight differences are used to determine which spanning tree produces the highest reward. The system is programmed to attempt maximize rewards at all times, causing the system to learn the best eventual method or policy for servicing the workspace.
12 Citations
20 Claims
-
1. A method for covering a surface by a robotic device comprising:
-
establishing a two-dimensional map of a workspace using data received from an outside source or gathered from one or more laser rangefinders positioned on the robotic device; dividing the two-dimensional map into a grid of cells of predetermined size; orienting the cell grid within the two-dimensional map such that the maximum number of whole cells result; identifying each cell as free, occupied, or unknown; localizing the robotic device within the two-dimensional map; completing the two-dimensional map by driving to cells identified as unknown and gathering more data by the one or more laser rangefinders until all unknown cells have been visited and identified as either occupied or free; connecting the centers of all free cells to create a spanning tree, wherein the spanning tree is constructed with a minimum number of corners; driving the robotic device along an outer edge of the spanning tree until all whole cells in the two-dimensional map are covered at least once by the robotic device; monitoring a number of collisions incurred by the robotic device during a work session; calculating a negative reward whenever a control or action executed by the robotic device results in a collision during the work session; calculating a negative reward based on cells retraced by the robotic device during the work session, cells left uncovered at the end of the work session, and the amount of time taken to complete the work session; calculating a positive reward upon completion of the work session; and amalgamating all the rewards incurred during or upon completion of the work session to obtain a value metric for the spanning tree used during the work session. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A surface coverage method comprising:
-
establishing, with a central processing unit of a surface coverage robot, a two-dimensional map of a workspace using data received by the central processing unit from an outside source or gathered from one or more laser rangefinders positioned on the surface coverage robot; dividing, with the central processing unit, the two-dimensional map into a grid of cells of predetermined size oriented such that the maximum number of whole cells result; identifying, with the central processing unit, a cell as free when the central processing unit determines via sensor data that no obstacles are present in an area within the corresponding cell; identifying, with the central processing unit, a cell as occupied when the central processing unit determines via sensors data that obstacles are present in an area within the corresponding cell; identifying, with the central processing unit, a cell as unknown when the central processing unit is unable to determine whether or not obstacles are present in an area within the corresponding cell; localizing, with the central processing unit, the surface coverage robot within the two-dimensional map; creating, with the central processing unit, a loop-free spanning tree by connecting the centers of all free cells in the two-dimensional map, wherein a number of corners in the loop-free spanning tree is minimized; instructing, with the central processing unit, the surface coverage robot to drive along an outer edge of the loop-free spanning tree; monitoring, with the central processing unit, a number of collisions incurred by the surface coverage robot during a work session; calculating, with the central processing unit, a negative reward whenever a control or action executed by the surface coverage robot results in a collision during the work session; calculating, with the central processing unit, a negative reward based on cells retraced by the surface coverage robot during the work session, cells left uncovered at the end of the work session, and the amount of time taken to complete the work session; calculating, with the central processing unit, a positive reward upon completion of the work session; and amalgamating, with the central processing unit, all the rewards incurred during or upon completion of the work session to obtain a value metric associated with the loop-free spanning tree used during the work session. - View Dependent Claims (9, 10, 11)
-
-
12. A system for covering a surface by a surface coverage robot comprising:
-
a tangible, non-transitory, machine readable medium storing instructions that when executed by a central processing unit of the surface coverage robot effectuates operations comprising; establishing, with the central processing unit, a two-dimensional map of a workspace using data received from an outside source or gathered from one or more sensors positioned on the surface coverage robot; dividing, with the central processing unit, the two-dimensional map into a grid of cells of predetermined size, the grid oriented such that the maximum number of whole cells result; marking, with the central processing unit, a cell as free if no obstacles are present within the corresponding cell; marking, with the central processing unit, a cell as occupied if obstacles are present within the corresponding cell; marking, with the central processing unit, a cell as unknown if the central processing unit is unable to determine whether or not obstacles are present within the corresponding cell; localizing, with the central processing unit, the surface coverage robot within the two-dimensional map; creating, with the central processing unit, a spanning tree by connecting the centers of all free cells in the two-dimensional map; instructing, with the central processing unit, the surface coverage robot to drive around the spanning tree such that one side of the surface coverage robot is adjacent to a part of the spanning tree at all times; monitoring, with the central processing unit, a number of collisions incurred by the surface coverage robot during a work session; calculating, with the central processing unit, a negative reward whenever a control or action executed by the surface coverage robot results in a collision during the work session; calculating, with the central processing unit, a negative reward based on cells retraced by the surface coverage robot during the work session, cells left uncovered at the end of the work session, and the amount of time taken to complete the work session; calculating, with the central processing unit, a positive reward upon completion of the work session; and amalgamating, with the central processing unit, all the rewards incurred during or upon completion of the work session to obtain the value metric associated with the spanning tree used during the work session, wherein the central processing unit creates a new spanning tree during each of a predetermined number of work sessions of the surface coverage robot, and thereafter selects a spanning tree for use based on the calculated value metrics thereof. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification