Discovering and plotting the boundary of an enclosure
Provided is a robot configured to generate a map of a workspace of the robot based at least in part on data sensed by at least one sensor in different positions and orientations within the workspace. The map of the workspace is saved to a memory of the robot or the cloud. The robot is paired with a software application executed on a smart phone configured to at least display the map of the workspace and receive at least one input designating a modification to the map of the workspace; a unique tag for a subarea within the map of the workspace; a schedule for cleaning by the robot; an area to avoid; and an instruction to start or stop vacuuming or mopping.
1 . A robot, comprising:
a chassis;
a set of wheels;
a plurality of sensors;
a processor;
a tangible, non-transitory, machine-readable medium storing instructions that, when executed by the processor, effectuate operations comprising:
generating, with the processor, a map of a workspace of the robot in a work session, wherein:
the robot carries at least one sensor that senses data indicative of locations of physical objects and walls within a sensed area by the at least one sensor, wherein the sensed data comprises measured distances to at least boundaries of the workspace and the map of the workspace is generated based on successively merged measured distances, plotting the boundary of the workspace, identifying gaps in the plotted boundary, and navigating to identified gaps until no gaps exists in the plotted boundary and the plotted boundary is a complete closed loop, and
the map of the workspace is generated in full when the data sensed by the at least one sensor comprises sensed area overlaps in at least a part of the workspace, wherein the area overlaps comprise areas sensed from different positions and orientations of the robot within the workspace;
saving, with the processor, the map of the workspace to a memory of the robot or the cloud for being used in a subsequent run; and
wherein the robot is configured to be paired with an external computing device in order to:
receive at least one input designating a modification to the map of the workspace; a unique tag for a subarea within the map of the workspace; a schedule for cleaning by the robot an area to avoid; and an instruction to start or stop vacuuming or mopping.
2 . The robot of claim 1 , wherein the operations further comprise:
tracking in a subsequent work session, with the processor, areas covered by the robot during the subsequent work session.
3 . The robot of claim 1 , wherein the operations further comprise:
segmenting, with the processor, the map of the workspace into different subareas based on identified gaps in the plotted boundary.
4 . The robot of claim 3 , wherein the map of the workspace depicts segmented subareas with dividers.
5 . The robot of claim 1 , wherein the operations further comprise:
providing, to the processor, a unique tag to at least some subareas within the map of the workspace.
6 . The robot of claim 1 , wherein the robot is further configured to receive at least one input designating a merger of two subareas into one larger area and a division of a single area into two smaller subareas.
7 . The robot of claim 2 , wherein the robot is further configured to devise a coverage pattern of the robot.
8 . The robot of claim 1 , wherein the robot is further configured to devise an optimal order of subareas for coverage by the robot.
9 . The robot of claim 1 , wherein the robot is further configured to receive at least one input designating an adjustment to a map boundary.
10 . The robot of claim 7 , wherein at least one decision relating to coverage of a subarea by the robot is based on a flooring type of a floor surface of the robot.
11 . The robot of claim 1 , wherein the robot further comprises:
a camera;
at least one light source for emitting light onto objects within the workspace;
wherein:
the light emitted onto the objects within the workspace falls within a field of view of the camera; and
the camera is positioned at angle in relation to a horizontal plane.
12 . The robot of claim 1 , wherein the robot further comprises a vacuuming apparatus and a mopping apparatus.
13 . The robot of claim 1 , wherein the map of the workspace is three-dimensional.
14 . The robot of claim 1 , wherein the operations further comprise:
determining, with the processor, identifying an object captured in an image with pixels separated from background pixels.
15 . The robot of claim 1 , wherein the robot uses the map of the workspace to devise a coverage path for performing work in subsequent work sessions.
16 . The robot of claim 1 , wherein generating the map of the workspace comprises iterations of:
generating, with the processor, a first iteration of the map;
selecting, with the processor, a first undiscovered area of the workspace;
in response to selecting the first undiscovered area, causing, with the processor, the robot to move to a second closer position and orientation relative to the first undiscovered area to sense data in at least part of the first undiscovered area;
determining, with the processor, that the sensed area overlaps with at least part of the workspace in the first undiscovered area; and
generating, with the processor, a second iteration of the map, the second iteration of the map being a larger area of the workspace than the first iteration of the map and based at least in part on data sensed from the second position and orientation and movement measured from the first position and orientation to the second position and orientation.
17 . The robot of claim 16 , wherein generating the map of the workspace further comprises:
updating, with the processor, a first iteration of the map to indicate that different portions have different mapping confidence scores, wherein portions comprising overlap between the sensed area and at least part of the workspace in the first undiscovered area have higher confidence scores.
18 . The robot of claim 1 , wherein the processor of the robot may be trained using deep learning to distinguish between a climbable bump and an unclimbable bump within the workspace.
19 . A method for generating a map, comprising:
generating, with a processor of a robot, a map of a workspace of the robot in a work session, wherein:
the robot carries at least one sensor that senses data indicative of locations of physical objects and walls within a sensed area by the at least one sensor, wherein the sensed data comprises measured distances to at least boundaries of the workspace and the map of the workspace is generated based on successively merged measured distances, plotting boundary of the workspace, identifying gaps in the plotted boundary, and navigating to identified gaps until no gaps exists in the plotted boundary and the plotted boundary is a complete closed loop, and
the map of the workspace is generated in full when the data sensed by the at least one sensor comprises sensed area overlaps in at least a part of the workspace, wherein the area overlaps comprise areas sensed from different positions and orientations of the robot within the workspace;
saving, with the processor, the map of the workspace to a memory of the robot or the cloud for being used in a subsequent run; and
wherein the robot is configured to be paired with an external computing device in order to:
receive at least one input designating a modification to the map of the workspace; a unique tag for a subarea within the map of the workspace; a schedule for cleaning by the robot an area to avoid; and an instruction to start or stop vacuuming or mopping.
20 . A tangible, non-transitory, machine-readable medium storing instructions that when executed by a processor of a robot effectuate operations comprising:
generating, with the processor of the robot, a map of a workspace of the robot in a work session, wherein:
the robot carries at least one sensor that senses data indicative of locations of physical objects and walls within a sensed area by the at least one sensor, wherein the sensed data comprises measured distances to at least boundaries of the workspace and the map of the workspace is generated based on successively merged measured distances, plotting boundary of the workspace, identifying gaps in the plotted boundary, and navigating to identified gaps until no gaps exists in the plotted boundary and the plotted boundary is a complete closed loop, and
the map of the workspace is generated in full when the data sensed by the at least one sensor comprises sensed area overlaps in at least a part of the workspace, wherein the area overlaps comprise areas sensed from different positions and orientations of the robot within the workspace;
saving, with the processor, the map of the workspace to a memory of the robot or the cloud for being used in a subsequent run; and
wherein the robot is configured to be paired with an external computing device in order to:
receive at least one input designating a modification to the map of the workspace; a unique tag for a subarea within the map of the workspace; a schedule for cleaning by the robot an area to avoid; and an instruction to start or stop vacuuming or mopping.