Mapping for autonomous mobile robots
By leveraging data from previous missions and integrating with smart devices, autonomous mobile robots enhance navigation and task efficiency, reducing error conditions and improving cleaning performance through intelligent path planning and fleet coordination.
Patent Information
- Application Number
- JP2025093400
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2019-08-09
- Filing Date
- 2025-06-04
- Publication Date
- 2025-09-25
AI Technical Summary
Autonomous mobile robots face challenges in navigating environments reliably, encountering error conditions, and efficiently performing tasks due to insufficient mapping and sensor data utilization, leading to inefficient path planning and increased risk of error triggers.
The implementation enhances autonomous mobile robots by using collected data from previous missions to plan paths intelligently, integrating with smart devices, and sharing mapping data among robots in a fleet to improve navigation and task efficiency, and enabling robots to adapt to feature states and obstacles.
This approach improves navigation reliability, reduces error conditions, enhances task performance, and increases cleaning efficiency by allowing robots to plan optimal paths and adapt to environmental features and smart devices, thereby enhancing user interaction and fleet coordination.
Smart Images

Figure 2025138663000001_ABST
Abstract
Description
[Technical Field]
[0001] This specification relates to map creation, and in particular to map creation for autonomous mobile robots. [Background technology]
[0002] Autonomous mobile robots include autonomous cleaning robots that autonomously perform cleaning tasks within an environment, for example, within a home. Many types of cleaning robots are autonomous to some degree and in different ways. The cleaning robot includes a controller that may be configured to autonomously navigate the robot around an environment so that the robot can pick up debris as it moves. Summary of the Invention [Problem to be solved by the invention]
[0003] As an autonomous mobile cleaning robot moves around an environment, the robot can collect data that can be used to build an intelligent robot-facing map of the environment. Based on the data collected by the robot, features in the environment, such as doors, dirty areas, or other features, can be labeled and shown on the map, and the status of the features can also be indicated on the map. The robot can select an action based on these labels and the status of the features associated with these labels. For example, a feature may be a door labeled and shown on the map, and the status of the door may be open or closed. If the door is in the closed state, the robot can select a navigation action that does not attempt to cross the door threshold, and if the door is in the open state, the robot can select a navigation action that attempts to cross the door threshold. The intelligent robot-facing map is visually represented in a user-readable form in which both the labels and the status of the features are visually presented to a user, allowing the user to view a representation of the robot-facing map and easily provide commands directly related to the labels on the robot-facing map.
[0004] The advantages of the foregoing may include, but are not limited to, those described below and those described elsewhere herein. [Means for solving the problem]
[0005] Implementations described herein can improve the reliability of an autonomous mobile robot in traversing an environment without encountering error conditions and improve task accomplishment performance. Rather than relying solely on the autonomous mobile robot's immediate response to the detection of a feature by its sensor system, the autonomous mobile robot can rely on data collected from previous missions to intelligently plan a path around the environment to avoid error conditions. In subsequent cleaning missions after an initial cleaning mission in which the robot discovers a feature, the robot can plan around the feature to avoid the risk of triggering an error condition associated with the feature. In addition, the robot can intelligently plan mission execution using data collected from previous missions so that the robot can focus on areas in the environment that require more attention.
[0006] Implementations described herein can improve fleet management for autonomous mobile robots that may traverse similar or overlapping regions. Mapping data shared among autonomous mobile robots in a fleet can improve map-building efficiency, facilitate smart behavior selection within an environment for the robots in the fleet, and enable the robots to more quickly learn about noteworthy features in the environment, such as features that require additional attention by the robot, features that may trigger an error condition for the robot, or features that may have changing conditions that will affect the robot's behavior. For example, a fleet of autonomous mobile robots in a home may include multiple types of autonomous mobile robots for performing various tasks within the home. A first robot may be equipped with a more advanced sensor set than sensors installed on a second robot in the fleet. The first robot with the advanced sensor set may be able to generate mapping data that the second robot cannot generate, and the first robot may then provide the mapping data to the second robot, for example, by providing the mapping data to a remote computing device accessible by the second robot. Even if the second robot does not have sensors capable of generating specific cartographic data, the second robot can use the cartographic data to improve its performance in performing tasks within the home. Additionally, the second robot may be equipped with some sensors capable of collecting cartographic data usable by the first robot, thereby allowing the fleet of autonomous mobile robots to more quickly generate cartographic data for building a map of the home.
[0007] The implementations described herein may enable autonomous mobile robots to integrate with other smart devices in an environment. An environment may include several smart devices that are connectable to each other or to a network accessible by devices in the environment. These smart devices may include one or more autonomous mobile robots, which together can generate cartographic data usable by the robots to navigate the environment and perform tasks within the environment. The smart devices in an environment can each generate data usable to build a map. The robots can then use this map to improve their ability to complete tasks within the environment and improve the efficiency of the paths they take within the environment.
[0008] Furthermore, when integrated with other smart devices, the autonomous mobile robot can be configured to control the other smart devices so that the robot can traverse an environment without being obstructed by some of the smart devices. For example, the environment can include a smart door and the autonomous mobile robot. In response to detecting the smart door, the robot can operate the smart door to ensure that the smart door is in an open state, thereby allowing the robot to easily move from a first room in the environment to a second room in the environment that is separated from the first room by the door.
[0009] Implementations described herein can improve the efficiency of navigation of an autonomous mobile robot within an environment. The autonomous mobile robot can plan a path through the environment based on a constructed map, and the planned path may enable the robot to traverse the environment and perform tasks more efficiently than an autonomous mobile robot traversing the environment and performing tasks without the aid of a map. In a further example, the autonomous mobile robot can plan a path that enables the robot to efficiently move between obstacles in the environment. The obstacles may, for example, be positioned and configured in a way that increases the likelihood that the robot will adopt an inefficient strategy. With the map, the robot can plan a path around the obstacles that reduces the likelihood that the robot will adopt such an inefficient strategy. In a further example, the map enables the robot to consider the states of various features in the environment. The states of features in the environment can affect the path the robot can take to traverse the environment. In this regard, by knowing the states of features in the environment, the robot can plan a path that can avoid the features when they are in certain states. For example, if the feature is a door separating a first room from a second room, the robot can plan a path through the first room when the door is in a closed state, and can plan a path through both the first and second rooms when the door is in an open state.
[0010] Implementations described herein can reduce the likelihood of an autonomous mobile robot triggering an error condition. For example, an autonomous mobile robot can select a navigation behavior within an area of a room based on features along a portion of a floor surface within the area. The feature can be, for example, a raised portion of the floor surface that may increase the risk of the robot getting stuck along the floor surface as it traverses the raised portion. The robot can select a navigation behavior, such as an angle or speed at which the robot approaches the raised portion, that will reduce the likelihood of the robot getting stuck on the raised portion.
[0011] Implementations described herein can further improve the cleaning efficiency of an autonomous cleaning robot used to clean floor surfaces of an environment. Labels on a map can correspond, for example, to dirty areas in the environment. The autonomous cleaning robot can select an action for each dirty area that depends on the condition of each dirty area, for example, how dirty each dirty area is. For dirtier areas, the action can cause the robot to spend more time traversing the area, traverse the area multiple times, or traverse the area with increased suction power. By selectively initiating actions depending on how dirty the area is, the robot can more effectively clean dirtier areas of the environment.
[0012] The implementations described herein can provide a richer user experience in several ways. First, the labels can provide improved visualization of the autonomous mobile robot's map. These labels form a common frame of reference for the robot and the user to communicate. Compared to maps without labels, the maps described herein can be more easily understood by a user when presented to the user. In addition, the maps allow the robot to be more easily used and controlled by the user.
[0013] In one aspect, a method includes constructing a map of an environment based on cartographic data generated by an autonomous cleaning robot within the environment during performance of a first cleaning mission. Constructing the map includes providing labels associated with portions of the cartographic data. The method includes displaying, on a remote computing device, a visual representation of the environment based on the map and a visual indicator of the labels. The method includes causing the autonomous cleaning robot to initiate an action associated with the label during performance of a second cleaning mission.
[0014] In another aspect, an autonomous cleaning robot includes a drive system that supports the autonomous cleaning robot over a floor surface in an environment. The drive system is configured to cause the autonomous cleaning robot to move about on the floor surface. The autonomous cleaning robot includes a cleaning assembly for cleaning the floor surface as the autonomous cleaning robot moves about on the floor surface, a sensor system, and a controller operably connected to the drive system, the cleaning assembly, and the sensor system. The controller is configured to execute instructions to perform operations including creating cartographic data of the environment using the sensor system during performance of a first cleaning mission, and initiating an action during performance of a second cleaning mission based on a label in a map constructed from the cartographic data. The label is associated with a portion of the cartographic data generated during performance of the first cleaning mission.
[0015] In another aspect, a mobile computing device includes a user input device, a display, and a controller operably connected to the user input device and the display. The controller is configured to execute instructions to perform operations including using the display to present a visual representation of an environment based on cartographic data generated by the autonomous cleaning robot in the environment during performance of a first cleaning mission, a visual indicator of a label associated with a portion of the cartographic data, and a visual indicator of a state of a feature in the environment associated with the label. The operations include updating the visual indicator of the label and the visual indicator of the state of the feature based on cartographic data generated by the autonomous cleaning robot during performance of a second cleaning mission.
[0016] In some implementations, the label is associated with a feature in the environment that is associated with the portion of the cartographic data. The feature in the environment can have multiple states, including a first state and a second state. Initiating the autonomous cleaning robot to perform the action associated with the label during the second cleaning mission includes initiating the autonomous cleaning robot to perform the action based on the feature being in the first state during the second cleaning mission. In some implementations, the feature is a first feature having a feature type, the label is a first label, and the portion of the cartographic data is the first portion of the cartographic data. Constructing the map may include providing a second label associated with the second portion of the cartographic data. The second label may be associated with a second feature in the environment that has a feature type and a number of states. The method may include causing the remote computing device to present a visual indicator of the second label. In some implementations, the method further includes determining that the first feature and the second feature each have a feature type based on the image of the first feature and the image of the second feature. In some implementations, the image of the first feature and the image of the second feature are captured by the autonomous cleaning robot. In some implementations, the image of the first feature and the image of the second feature are captured by one or more image capture devices in the environment. In some implementations, the method further includes initiating an action by the autonomous cleaning robot based on the second feature being in the first state during performance of the second cleaning mission. In some implementations, the action is a first action, and the method further includes initiating a second action by the autonomous cleaning robot based on the second feature being in the second state during performance of the second cleaning mission.
[0017] In some implementations, causing the autonomous cleaning robot to initiate an action based on the characteristic being in the first state during performance of the second cleaning mission includes causing the autonomous cleaning robot to initiate an action in response to the autonomous cleaning robot detecting that the characteristic is in the first state.
[0018] In some implementations, the feature is a region of a floor surface in the environment. The first state may be a first level of soiling of the region of the floor surface, and the second state may be a second level of soiling of the region. In some implementations, the autonomous cleaning robot in a first operation associated with the first state provides a first degree of cleaning in the region that is greater than a second degree of cleaning of the region in a second operation associated with the second state. In some implementations, the region is a first region, the label is a first label, and the portion of the cartographic data is the first portion of the cartographic data. Constructing the map may include providing a second label associated with the second portion of the cartographic data. The second label may be associated with a second region in the environment having the number of states. In some implementations, the label is a first label, and the region is the first region. The first region may be associated with a first object in the environment. The method may further include providing a second label associated with the second region in the environment based on the type of the second object in the environment being the same as the type of the first object in the environment. The second region may be associated with a second object.
[0019] In some implementations, the feature is a door in the environment between a first portion of the environment and a second portion of the environment, the first state being an open state of the door and the second state being a closed state of the door. In some implementations, the autonomous cleaning robot in a first motion associated with the open state moves from the first portion of the environment to the second portion of the environment. The autonomous cleaning robot in a second motion associated with the closed state can detect the door and provide instructions to move the door to an open state. In some implementations, the door is in an open state and during performance of a second cleaning mission, the door is in a closed state. In some implementations, the door is a first door, the label is a first label, and the portion of the cartographic data is the first portion of the cartographic data. Constructing the map may include providing a second label associated with a second portion of the cartographic data. The second label may be associated with a second door in the environment having a number of states. In some implementations, the method further includes causing the remote computing device to issue a request for the user to operate the door in a closed state to an open state. In some implementations, the door is an electronically controllable door. Initiating the autonomous cleaning robot to take an action based on the characteristic being in the first state during performance of the second cleaning mission can include causing the autonomous cleaning robot to transmit data to move the electronically controllable door from a closed state to an open state.
[0020] In some implementations, the method further includes causing a remote computing device to issue a request to change the state of the feature.
[0021] In some implementations, the label is associated with an area in the environment associated with a first navigation operation of the autonomous cleaning robot during performance of a first cleaning mission. This operation may be a second navigation operation selected based on the first navigation operation. In some implementations, in the first navigation operation, the autonomous cleaning robot does not traverse the area. The autonomous cleaning robot can initiate a second navigation operation to traverse the area. In some implementations, the cartographic data is the first cartographic data. The label may be associated with a portion of second cartographic data collected during performance of a third cleaning mission. The portion of the second cartographic data may be associated with a third navigation operation in which the autonomous cleaning robot traverses the area. Parameters of the second navigation operation may be selected to match parameters of the third navigation operation. In some implementations, the parameter is a speed of the autonomous cleaning robot or an approach angle of the autonomous cleaning robot with respect to the area. In some implementations, in a first navigation operation, the autonomous cleaning robot moves along a first path through an area, the first path having a first number of entry points into the area. The autonomous cleaning robot can initiate a second navigation operation to move along a second path through the area. The second path can have a second number of entry points into the area that are less than the first number of entry points. In some implementations, the cartographic data is first cartographic data, and the method includes removing the label in response to the second cartographic data generated by the autonomous cleaning robot indicating removal of one or more obstacles from the area.
[0022] In some implementations, the map is accessible by multiple electronic devices in the environment. The multiple electronic devices can include autonomous cleaning robots. In some implementations, the autonomous cleaning robot is a first autonomous cleaning robot, and the multiple electronic devices in the environment include a second autonomous cleaning robot.
[0023] In some implementations, the portion of the cartographic data is associated with an obstacle in the environment. The method may further include causing the autonomous mobile robot to avoid and detect the obstacle without contacting the obstacle based on the label.
[0024] In some implementations, the label is associated with a feature in the environment that is associated with the portion of the cartographic data. The feature in the environment can have multiple states, including a first state and a second state. The portion of the cartographic data can be associated with the first state of the feature. The method can further include causing the remote computing device to present a visual indicator indicating that the feature is in the first state. In some implementations, the method further includes, in response to determining that the feature is in the second state, transmitting data to cause the remote computing device to present a visual indicator indicating that the feature is in the second state.
[0025] The details of one or more implementations of the subject matter described herein are set forth in the accompanying drawings and the description below. Other potential features, aspects, and advantages will become apparent from the description, drawings, and claims. [Additional note 1] 1. A method comprising: constructing a map of an environment based on cartographic data generated by the autonomous cleaning robot within the environment during performance of a first cleaning mission, the map constructing including providing labels associated with portions of the cartographic data; causing a remote computing device to present a visual representation of the environment based on the map and a visual indicator of the label; causing the autonomous cleaning robot to initiate an action associated with the label during performance of a second cleaning mission. [Additional note 2] the label is associated with a feature in the environment associated with the portion of the cartographic data, the feature in the environment having a number of states including a first state and a second state; The method described in Appendix 1, wherein the step of causing the autonomous cleaning robot to initiate the action associated with the label while performing the second cleaning mission includes the step of causing the autonomous cleaning robot to initiate the action based on the feature being in the first state while performing the second cleaning mission. [Additional note 3] the feature is a first feature having a feature type, the label is a first label, and the portion of the cartographic data is a first portion of the cartographic data; constructing the map includes providing a second label associated with a second portion of the cartographic data, the second label associated with a second feature in the environment having the feature type and the number of states; 3. The method of claim 2, further comprising causing the remote computing device to present a visual indicator of the second label. [Additional note 4] The method of claim 3, further comprising determining that the first feature and the second feature each have the feature type based on an image of the first feature and an image of the second feature. [Additional note 5] 5. The method of claim 4, wherein the image of the first feature and the image of the second feature are captured by the autonomous cleaning robot. [Additional note 6] 5. The method of claim 4, wherein the image of the first feature and the image of the second feature are captured by one or more image capture devices within the environment. [Additional note 7] The method of claim 3, further comprising the step of causing the autonomous cleaning robot to initiate the action based on the second characteristic being in the first state during performance of the second cleaning mission. [Additional note 8] The method of claim 3, wherein the action is a first action, and the method further includes a step of causing the autonomous cleaning robot to initiate a second action based on the second characteristic being in the second state during performance of the second cleaning mission. [Additional note 9] The method described in Appendix 2, wherein the step of causing the autonomous cleaning robot to initiate the operation based on the characteristic being in the first state during the performance of the second cleaning mission includes a step of causing the autonomous cleaning robot to initiate the operation in response to the autonomous cleaning robot detecting that the characteristic is in the first state. [Additional Note 10] the feature is a region of a floor surface within the environment; 3. The method of claim 2, wherein the first condition is a first level of soiling of the area of the floor surface, and the second condition is a second level of soiling of the area. [Additional Note 11] 11. The method of claim 10, wherein the autonomous cleaning robot in a first operation associated with the first state provides a first degree of cleaning in the area that is greater than a second degree of cleaning in the area in a second operation associated with the second state. [Additional Note 12] the region is a first region, the label is a first label, and the portion of the cartographic data is a first portion of the cartographic data; 11. The method of claim 10, wherein constructing the map includes providing a second label associated with a second portion of the cartographic data, the second label being associated with a second region within the environment having the number of states. [Additional Note 13] the label is a first label and the region is a first region; the first region is associated with a first object in the environment; The method of claim 10, further comprising the step of providing a second label associated with a second region in the environment based on the type of a second object in the environment being the same as the type of the first object in the environment, wherein the second region is associated with the second object. [Additional Note 14] the feature is a door in the environment between a first portion of the environment and a second portion of the environment; 3. The method of claim 2, wherein the first state is an open state of the door and the second state is a closed state of the door. [Additional Note 15] The method of claim 14, wherein the autonomous cleaning robot in a first motion associated with the open state moves from the first portion of the environment to the second portion of the environment, and the autonomous cleaning robot in a second motion associated with the closed state detects the door and provides instructions to move the door to the open state. [Additional Note 16] 16. The method of claim 15, wherein the door is in the open state during the first cleaning mission and the door is in the closed state during the second cleaning mission. [Additional Note 17] the door is a first door, the label is a first label, and the portion of the cartographic data is a first portion of the cartographic data; 15. The method of claim 14, wherein constructing the map includes providing a second label associated with a second portion of the cartographic data, the second label being associated with a second door in the environment having the number of states. [Additional Note 18] 15. The method of claim 14, further comprising the step of causing the remote computing device to issue a request from the user to operate the door in the closed state to change it to the open state. [Additional Note 19] The method of claim 14, wherein the door is an electronically controllable door, and the step of initiating the operation of the autonomous cleaning robot based on the characteristic being in the first state during the performance of the second cleaning mission includes the step of instructing the autonomous cleaning robot to transmit data to move the electronically controllable door from the closed state to the open state. [Additional Note 20] 3. The method of claim 2, further comprising causing the remote computing device to issue a request to change the state of the feature. [Additional Note 21] 2. The method of claim 1, wherein the label is associated with an area in the environment associated with a first navigation operation of the autonomous cleaning robot during performance of the first cleaning mission, the operation being a second navigation operation selected based on the first navigation operation. [Additional Note 22] In the first navigation behavior, the autonomous cleaning robot does not traverse the area; 22. The method of claim 21, wherein the autonomous cleaning robot initiates the second navigation operation to traverse the area. [Additional Note 23] the cartographic data is first cartographic data; the label is associated with a portion of second cartographic data collected during performance of a third cleaning mission, the portion of the second cartographic data being associated with a third navigation operation of the autonomous cleaning robot traversing the area; 22. The method of claim 21, wherein parameters of the second navigation operation are selected to match parameters of the third navigation operation. [Additional note 24] 24. The method of claim 23, wherein the parameter is a speed of the autonomous cleaning robot or an approach angle of the autonomous cleaning robot with respect to the area. [Additional note 25] In the first navigation operation, the autonomous cleaning robot moves along a first path through the area, the first path having a first number of entry points into the area; 22. The method of claim 21, wherein the autonomous cleaning robot initiates the second navigation operation to move along a second path through the area, the second path having a second number of entry points into the area that is less than the first number of entry points. [Additional note 26] the cartographic data is first cartographic data; 26. The method of claim 25, further comprising removing the label in response to second cartographic data generated by the autonomous cleaning robot indicating removal of one or more obstacles from the area. [Additional note 27] 2. The method of claim 1, wherein the map is accessible by a plurality of electronic devices in the environment, the plurality of electronic devices including the autonomous cleaning robot. [Additional note 28] 28. The method of claim 27, wherein the autonomous cleaning robot is a first autonomous cleaning robot and the plurality of electronic devices in the environment includes a second autonomous cleaning robot. [Additional note 29] the portion of the cartographic data is associated with obstacles in the environment; The method according to claim 1, further comprising the step of causing an autonomous mobile robot to avoid the obstacle without contacting the obstacle and to detect the obstacle based on the label. [Additional note 30] the label is associated with a feature in the environment associated with the portion of the cartographic data, the feature in the environment having a number of states including a first state and a second state; the portion of the cartographic data is associated with the first state of the feature; 2. The method of claim 1, further comprising causing the remote computing device to present a visual indicator indicating that the feature is in the first state. [Additional Note 31] The method of claim 30, further comprising transmitting data to cause the remote computing device to present a visual indicator indicating that the feature is in the second state in response to determining that the feature is in the second state. [Additional note 32] An autonomous cleaning robot, a drive system for supporting the autonomous cleaning robot over a floor surface in an environment, the drive system configured to move the autonomous cleaning robot about over the floor surface; a cleaning assembly that cleans the floor surface as the autonomous cleaning robot moves about the floor surface; a sensor system; a controller operably connected to the drive system, the cleaning assembly, and the sensor system and configured to execute instructions to perform operations, the operations including: generating mapping data of the environment using the sensor system during performance of a first cleaning mission; and initiating an operation during performance of a second cleaning mission based on a label in a map constructed from the cartographic data, the label being associated with a portion of the cartographic data generated during performance of the first cleaning mission. [Additional note 33] 1. A mobile computing device, comprising: a user input device; The display and a controller operably connected to the user input device and the display and configured to execute instructions to perform operations, the operations including: using the display to present a visual representation of the environment based on cartographic data generated by the autonomous cleaning robot within the environment during performance of a first cleaning mission, a visual indicator of a label associated with a portion of the cartographic data, and a visual indicator of a state of a feature within the environment associated with the label; and updating the visual indicator of the label and the visual indicator of the state of the feature based on cartographic data generated by the autonomous cleaning robot during performance of a second cleaning mission. [Brief explanation of the drawings]
[0026] [Figure 1A] FIG. 1 is a schematic top view of an environment with an autonomous cleaning robot. [Figure 1B] FIG. 1 is a front view of a user device showing a visual representation of a map. [Figure 2] FIG. 1 is a cross-sectional side perspective view of an autonomous cleaning robot. [Figure 3A] FIG. 1 is a cross-sectional bottom perspective view of an autonomous cleaning robot. [Figure 3B] FIG. 1 is a cross-sectional top perspective view of an autonomous cleaning robot. [Figure 4] 1 is a diagram of a communication network. [Figure 5] 1 is a diagram of the associations between features in the environment, cartographic data, and labels on the map. [Figure 6] FIG. 1 is a block diagram of a process for presenting an indicator of a feature in an environment to a user or for initiating an action based on a feature in an environment. [Figure 7A] FIG. 1 is a schematic top view of an environment with an autonomous cleaning robot. [Figure 7B] FIG. 1 is a schematic top view of an environment with an autonomous cleaning robot. [Figure 7C] FIG. 1 is a schematic top view of an environment with an autonomous cleaning robot. [Figure 7D] FIG. 1 is a schematic top view of an environment with an autonomous cleaning robot. [Figure 8A] FIG. 1 is a schematic top view of an environment with an autonomous cleaning robot. [Figure 8B] FIG. 1 is a schematic top view of an environment with an autonomous cleaning robot. [Figure 9A] FIG. 1 is a schematic top view of an environment with an autonomous cleaning robot. [Figure 9B] FIG. 1 is a schematic top view of an environment with an autonomous cleaning robot. [Figure 9C] FIG. 1 is a schematic top view of an environment with an autonomous cleaning robot. [Figure 9D] FIG. 1 is a schematic top view of an environment with an autonomous cleaning robot. [Figure 10A] FIG. 1 is a schematic top view of an environment with an autonomous cleaning robot. [Figure 10B] FIG. 1 is a schematic top view of an environment with an autonomous cleaning robot. [Figure 11A] FIG. 1 is a schematic top view of an environment with an autonomous cleaning robot. [Figure 11B] FIG. 1 is a schematic top view of an environment with an autonomous cleaning robot. [Figure 11C] FIG. 1 is a schematic top view of an environment with an autonomous cleaning robot. [Figure 11D] FIG. 1 is a schematic top view of an environment with an autonomous cleaning robot. DETAILED DESCRIPTION OF THE INVENTION
[0027] Like reference numbers and designations in the various drawings indicate like elements.
[0028] Autonomous mobile robots can be controlled to move around on a floor surface in an environment. As these robots move around on the floor surface, they can generate cartographic data, for example, using sensors attached to the robot, which can then be used to construct a labeled map. Labels on the map can correspond to features in the environment. The robot can initiate actions that depend on the labels and on the state of the features in the environment. Furthermore, a user can monitor the environment and the robot using a visual representation of the labeled map.
[0029] FIG. 1A illustrates an example of an autonomous cleaning robot 100 on a floor surface 10 within an environment 20, e.g., a home. A user 30 can operate a user computing device 31 to view a visual representation 40 (shown in FIG. 1B) of a map of the environment 20. As the robot 100 moves about the floor surface 10, the robot 100 generates cartographic data that can be used to generate a map of the environment 20. The robot 100 can be controlled, for example, autonomously by a controller of the robot 100, manually by a user 30 operating the user computing device 31, or otherwise, to initiate actions responsive to features within the environment 20. For example, features within the environment 20 include doors 50a, 50b, soiled areas 52a, 52b, 52c, and raised portions 54 (e.g., thresholds between rooms within the environment 20). The robot 100 can be equipped with one or more sensors capable of detecting these features. As described herein, one or more of these features may be labeled in a map constructed from cartographic data collected by robot 100. The labels for these features may be used by robot 100 to initiate a particular action associated with the label and may also be visually represented on the visual representation of the map presented to user 30. As shown in FIG. 1B , visual representation 40 of the map includes indicators 62a, 62b for doors 50a, 50b, indicators 64a, 64b, 64c for dirty areas 52a, 52b, 52c, and indicator 65 for raised portion 54. In addition, visual representation 40 further includes indicators 66a-66f of the condition, type, and / or location of the feature within environment 20. For example, indicators 66a-66e indicate the current states of doors 50a, 50b and soiled areas 52a, 52b, 52c, respectively, and indicators 66a-66f indicate the feature types of doors 50a, 50b, soiled areas 52a, 52b, 52c, respectively, and raised portion 54. For example, the type of doors 50a, 50b is indicated as "door" and the states of doors 50a, 50b are indicated as "closed" and "open," respectively.The type of soiled area 52a, 52b, 52c is indicated as "soiled area" and the status of soiled area 52a, 52b, 52c is indicated as "high soiling", "medium soiling", and "low soiling", respectively.
[0030] Exemplary Autonomous Mobile Robot 2 and 3A-3B illustrate an example of a robot 100. Referring to FIG. 2, the robot 100 collects debris 105 from a floor surface 10 as the robot 100 traverses over the floor surface 10. The robot 100 can be used to perform one or more cleaning missions to clean the floor surface 10 within an environment 20 (shown in FIG. 1A). A user can send a command to the robot 100 to initiate a cleaning mission. For example, the user can send a start command that causes the robot 100 to initiate a cleaning mission upon receiving the start command. In another example, the user can provide a schedule that causes the robot 100 to initiate a cleaning mission at a scheduled time indicated in the schedule. The schedule can include multiple scheduled times for the robot 100 to initiate a cleaning mission. In some implementations, between the start and end of a single cleaning mission, the robot 100 can stop the cleaning mission to charge the robot 100, for example, to charge an energy storage unit of the robot 100. The robot 100 can then resume the cleaning mission after the robot 100 is sufficiently charged. The robot 100 can automatically charge at the docking station 60 (shown in FIG. 1A). In some implementations, the docking station 60, in addition to charging the robot 100, can evacuate debris from the robot 100 when the robot 100 is docked to the docking station 60.
[0031] Referring to FIG. 3A , the robot 100 includes a housing infrastructure 108. The housing infrastructure 108 may define the structural perimeter of the robot 100. In some examples, the housing infrastructure 108 includes a chassis, a cover, a base plate, and a bumper assembly. The robot 100 is a domestic robot having a small profile so that the robot 100 can fit under furniture in a home. For example, the height H1 (shown in FIG. 2 ) of the robot 100 relative to the floor surface may be 13 centimeters or less. The robot 100 is also compact. The overall length L1 (shown in FIG. 2 ) and overall width W1 (shown in FIG. 3A ) of the robot 100 are each between 30 and 60 centimeters, e.g., between 30 and 40 centimeters, between 40 and 50 centimeters, or between 50 and 60 centimeters. The overall width W1 may correspond to the width of the housing infrastructure 108 of the robot 100.
[0032] The robot 100 includes a drive system 110 including one or more drive wheels. The drive system 110 further includes one or more electric motors including electrically driven portions that form part of an electrical circuit 106. A housing infrastructure 108 supports the electrical circuit 106, including at least one controller 109, within the robot 100.
[0033] The drive system 110 is operable to propel the robot 100 across the floor surface 10. The robot 100 may be propelled in a forward drive direction F or a backward drive direction R. The robot 100 may also be propelled so that the robot 100 turns in place or turns while moving in the forward drive direction F or the backward drive direction R. In the example shown in FIG. 3A , the robot 100 includes a drive wheel 112 that penetrates the bottom 113 of the housing infrastructure 108. The drive wheel 112 is rotated by a motor 114 to move the robot 100 along the floor surface 10. The robot 100 further includes a passive caster wheel 115 that penetrates the bottom 113 of the housing infrastructure 108. The caster wheel 115 is not powered. Together, the drive wheel 112 and the caster wheel 115 cooperate to support the housing infrastructure 108 above the floor surface 10. For example, the caster wheels 115 are disposed along the rear portion 121 of the housing infrastructure 108 and the drive wheels 112 are disposed forward of the caster wheels 115 .
[0034] 3B, the robot 100 comprises a substantially rectangular front portion 122 and a substantially semicircular rear portion 121. The front portion 122 includes side surfaces 150, 152, a front surface 154, and corner surfaces 156, 158. The corner surfaces 156, 158 of the front portion 122 connect the side surfaces 150, 152 to the front surface 154.
[0035] 2, 3A, and 3B, robot 100 is an autonomous mobile floor-cleaning robot that includes a cleaning assembly 116 (shown in FIG. 3A) operable to clean floor surface 10. For example, robot 100 is a vacuum cleaning robot in which cleaning assembly 116 is operable to clean floor surface 10 by collecting debris 105 (shown in FIG. 2) from floor surface 10. Cleaning assembly 116 includes a cleaning entrance 117 through which debris is collected by robot 100. Cleaning entrance 117 is positioned forward of a center of robot 100, e.g., center 162, and along front portion 122 of robot 100 between side surfaces 150, 152 of front portion 122.
[0036] The cleaning assembly 116 includes one or more rotatable members, e.g., rotatable members 118 driven by motors 120. The rotatable members 118 extend horizontally across a front portion 122 of the robot 100. The rotatable members 118 are positioned along the front portion 122 of the housing infrastructure 108 and extend along a width that corresponds to 75% to 95% of the width of the front portion 122 of the housing infrastructure 108, e.g., an overall width W1 of the robot 100. Referring also to FIG. 2 , a cleaning entrance 117 is positioned between the rotatable members 118.
[0037] As shown in FIG. 2, the rotatable members 118 are rollers that counter-rotate relative to one another. For example, the rotatable members 118 can rotate about parallel horizontal axes 146, 148 (shown in FIG. 3A ) to agitate debris 105 on the floor surface 10 and direct the debris 105 toward a cleaning inlet 117 within the robot 100, through the cleaning inlet 117, and into a suction path 145 (shown in FIG. 2 ). Referring again to FIG. 3A , the rotatable members 118 can be positioned to fit entirely within the front portion 122 of the robot 100. The rotatable members 118 include an elastomeric shell that, as the rotatable members 118 rotate relative to the housing infrastructure 108, contacts debris 105 on the floor surface 10 and directs the debris 105 through the cleaning inlet 117 between the rotatable members 118 and into the interior of the robot 100, for example, into a dustbin 124 (shown in FIG. 2 ). The rotatable member 118 also contacts the floor surface 10 and agitates the debris 105 on the floor surface 10 .
[0038] The robot 100 includes a vacuum system 119 operable to generate an airflow through the cleaning inlet 117 between the rotatable members 118 and into the trash can 124. The vacuum system 119 includes an impeller and a motor for rotating the impeller to generate the airflow. The vacuum system 119 cooperates with the cleaning assembly 116 to draw debris 105 from the floor surface 10 into the trash can 124. In some cases, the airflow generated by the vacuum system 119 generates sufficient force to draw debris 105 on the floor surface 10 upward through the gaps between the rotatable members 118 and into the trash can 124. In some implementations, the rotatable members 118 contact the floor surface 10 and agitate the debris 105 on the floor surface 10, thereby allowing the debris 105 to be more easily captured by the airflow generated by the vacuum system 119.
[0039] The robot 100 further includes a brush 126 that rotates about a non-horizontal axis, for example, an axis that forms an angle between 75 and 90 degrees with respect to the floor surface 10. The non-horizontal axis, for example, forms an angle between 75 and 90 degrees with respect to the longitudinal axis of the rotatable member 118. The robot 100 includes a motor 128 operably connected to the brush 126 for rotating the brush 126.
[0040] The brush 126 is a side brush that is offset laterally from the fore-aft axis FA of the robot 100 such that the brush 126 extends beyond the periphery of the housing infrastructure 108 of the robot 100. For example, the brush 126 may extend beyond one of the side surfaces 150, 152 of the robot 100, thereby engaging debris on portions of the floor surface 10 that the rotatable member 118 typically cannot reach, such as portions of the floor surface 10 outside the portion of the floor surface 10 directly below the robot 100. The brush 126 is also offset forward from the lateral axis LA of the robot 100 such that the brush 126 also extends beyond the front surface 154 of the housing infrastructure 108. As shown in FIG. 3A , the brush 126 extends beyond the side surface 150, the corner surface 156, and the front surface 154 of the housing infrastructure 108. In some implementations, the horizontal distance D1 that the brush 126 extends beyond the side surface 150 is at least, e.g., 0.2 centimeters, e.g., at least 0.25 centimeters, at least 0.3 centimeters, at least 0.4 centimeters, at least 0.5 centimeters, at least 1 centimeter, or more. The brush 126 is positioned to contact the floor surface 10 during rotation so that the brush 126 can easily engage debris 105 on the floor surface 10.
[0041] The brush 126 can rotate about a non-horizontal axis in a manner that causes debris on the floor surface 10 to be brushed into the cleaning path of the cleaning assembly 116 as the robot 100 moves. For example, in an example where the robot 100 is moving in a forward drive direction F, the brush 126 can rotate in a clockwise direction (as viewed from a top perspective of the robot 100) such that debris contacted by the brush 126 moves toward the cleaning assembly and toward a portion of the floor surface 10 in front of the cleaning assembly 116 in the forward drive direction F. As a result, the cleaning entrance 117 of the robot 100 can collect debris swept up by the brush 126 as the robot 100 moves in the forward drive direction F. In an example where the robot 100 is moving in a rearward drive direction R, the brush 126 can rotate in a counterclockwise direction (as viewed from a top perspective of the robot 100) such that debris contacted by the brush 126 moves toward a portion of the floor surface 10 behind the cleaning assembly 116 in the rearward drive direction R. As a result, the cleaning inlet 117 of the robot 100 can collect debris swept up by the brushes 126 as the robot 100 moves in the rearward drive direction R.
[0042] In addition to the controller 109, the electrical circuitry 106 includes, for example, a memory storage element 144 and a sensor system having one or more electrical sensors. The sensor system can generate signals indicative of the current disposition of the robot 100 as the robot 100 moves along the floor surface 10, as described herein. The controller 109 is configured to execute instructions to perform one or more operations as described herein. The memory storage element 144 is accessible by the controller 109 and is disposed within the housing infrastructure 108. The one or more electrical sensors are configured to detect features within the environment 20 of the robot 100. For example, with reference to FIG. 3A , the sensor system includes cliff sensors 134 disposed along the bottom portion 113 of the housing infrastructure 108. Each of the cliff sensors 134 is an optical sensor that can detect the presence or absence of an object below the optical sensor, such as the floor surface 10. Thus, the cliff sensor 134 can detect obstacles such as drop-offs and cliffs below the portion of the robot 100 on which the cliff sensor 134 is disposed and turn the robot accordingly.
[0043] 3B , the sensor system includes one or more proximity sensors capable of detecting objects along the floor surface 10 near the robot 100. For example, the sensor system can include proximity sensors 136a, 136b, 136c disposed proximate the front surface 154 of the housing infrastructure 108. Each of the proximity sensors 136a, 136b, 136c includes an optical sensor facing outward from the front surface 154 of the housing infrastructure 108 and can detect the presence or absence of an object in front of the optical sensor. For example, detectable objects include obstacles such as furniture, walls, people, and other objects in the environment 20 of the robot 100.
[0044] The sensor system comprises a bumper system including a bumper 138 and one or more bump sensors that detect contact between the bumper 138 and an obstacle in the environment 20. The bumper 138 forms part of the housing infrastructure 108. For example, the bumper 138 can form side surfaces 150, 152 as well as a front surface 154. The sensor system can comprise, for example, bump sensors 139a, 139b. The bump sensors 139a, 139b can include break beam sensors, capacitance sensors, or other sensors that can detect contact between the robot 100, e.g., the bumper 138, and an object in the environment 20. In some implementations, the bump sensor 139a can be used to detect movement of the bumper 138 along a fore-aft axis FA (shown in FIG. 3A ) of the robot 100, and the bump sensor 139b can be used to detect movement of the bumper 138 along a lateral axis LA (shown in FIG. 3A ) of the robot 100. The proximity sensors 136a, 136b, 136c can detect an object before the robot 100 touches the object, and the bump sensors 139a, 139b can detect an object touching the bumper 138, for example, in response to the robot 100 touching the object.
[0045] The sensor system includes one or more obstacle-following sensors. For example, the robot 100 can include an obstacle-following sensor 141 along the side surface 150. The obstacle-following sensor 141 includes an optical sensor facing outward from the side surface 150 of the housing infrastructure 108, which can detect the presence or absence of an object adjacent to the side surface 150 of the housing infrastructure 108. The obstacle-following sensor 141 can emit a light beam horizontally in a direction perpendicular to the forward drive direction F of the robot 100 and perpendicular to the side surface 150 of the robot 100. For example, detectable objects include obstacles such as furniture, walls, people, and other objects in the environment 20 of the robot 100. In some implementations, the sensor system can include an obstacle-following sensor along the side surface 152, which can detect the presence or absence of an object adjacent to the side surface 152. Obstacle-following sensor 141 along side surface 150 is a right obstacle-following sensor, and obstacle-following sensor 152 along side surface 152 is a left obstacle-following sensor. One or more obstacle-following sensors, including obstacle-following sensor 141, may also serve as obstacle detection sensors, e.g., similar to the proximity sensors described herein. In this regard, the left obstacle-following sensor can be used to determine the distance between robot 100 and an object, e.g., an obstacle surface, on the left side of robot 100, and the right obstacle-following sensor can be used to determine the distance between robot 100 and an object, e.g., an obstacle surface, on the right side of robot 100.
[0046] In some implementations, at least some of the proximity sensors 136a, 136b, 136c and the obstacle-following sensor 141 each include an optical emitter and an optical detector. The optical emitter emits a light beam outward from the robot 100, e.g., horizontally outward, and the optical detector detects reflections of the light beam reflected off objects near the robot 100. The robot 100 can determine the time of flight of the light beam, for example, using the controller 109, thereby determining the distance between the optical detector and the object, and therefore the distance between the robot 100 and the object.
[0047] In some implementations, the proximity sensor 136a includes an optical detector 180 and multiple optical emitters 182, 184. One of the optical emitters 182, 184 may be positioned to direct a light beam outward and downward, while the other of the optical emitters 182, 184 may be positioned to direct a light beam outward and upward. The optical detector 180 may detect reflections of or scattering from the light beam. In some implementations, the optical detector 180 is an image sensor, a camera, or some other type of detection device for sensing optical signals. In some implementations, the light beam illuminates a horizontal line along a vertical plane in front of the robot 100. In some implementations, the optical emitters 182, 184 each emit a fan-shaped beam outward toward one or more obstacle surfaces such that a one-dimensional grid of dots appears on the obstacle surface. The one-dimensional grid of dots may be positioned on a line extending horizontally. In some implementations, the grid of dots may extend across multiple obstacle surfaces, for example, multiple obstacle surfaces adjacent to one another. Optical detector 180 can capture an image representing the grid of dots formed by optical emitter 182 and the grid of dots formed by optical emitter 184. Based on the size of the dots in the image, robot 100 can determine the distance of the object from which the dot appears relative to optical detector 180, e.g., relative to robot 100. Robot 100 can make this determination for each of the dots, thus enabling robot 100 to determine the shape of the object from which the dot appears. Additionally, if multiple objects are in front of robot 100, robot 100 can determine the shape of each of the objects. In some implementations, the objects can include one or more objects laterally offset from a portion of floor surface 10 directly in front of robot 100.
[0048] The sensor system further comprises an image capture device 140, e.g., a camera, pointed toward the top 142 of the housing infrastructure 108. The image capture device 140 generates digital images of the environment 20 of the robot 100 as the robot 100 moves about on the floor surface 10. The image capture device 140 is angled upward, e.g., between 30 and 80 degrees from the floor surface 10 along which the robot 100 navigates. When angled upward, the camera can capture images of the walls of the environment 20 such that features corresponding to objects on the walls can be used for localization.
[0049] When the controller 109 causes the robot 100 to perform a mission, the controller 109 operates the motors 114 to drive the drive wheels 112 to propel the robot 100 along the floor surface 10. Additionally, the controller 109 operates the motors 120 to rotate the rotatable member 118, the motors 128 to rotate the brushes 126, and the motors of the vacuum system 119 to generate airflow. To cause the robot 100 to perform various navigation and cleaning operations, the controller 109 executes software stored on the memory storage element 144, which causes the robot 100 to perform operations by operating the various motors of the robot 100. The controller 109 operates the various motors of the robot 100 to cause the robot 100 to perform operations.
[0050] The sensor system may further include sensors for tracking the distance traveled by the robot 100. For example, the sensor system may include encoders associated with the motors 114 for the drive wheels 112, which may track the distance traveled by the robot 100. In some implementations, the sensor system includes an optical sensor facing downward toward the floor surface. The optical sensor may be an optical mouse sensor. For example, the optical sensor may be positioned to direct light through the bottom of the robot 100 toward the floor surface 10. The optical sensor may detect reflections of light and may detect the distance traveled by the robot 100 based on changes in floor features as the robot 100 moves along the floor surface 10.
[0051] The controller 109 uses data collected by the sensors of the sensor system to control the navigational behavior of the robot 100 while performing a mission. For example, the controller 109 uses sensor data collected by the obstacle detection sensors of the robot 100, such as the cliff sensor 134, the proximity sensors 136a, 136b, 136c, and the bump sensors 139a, 139b, to enable the robot 100 to avoid obstacles in the environment 20 of the robot 100 while performing a mission.
[0052] The sensor data may be used by the controller 109 for simultaneous localization and mapping (SLAM) techniques, in which the controller 109 extracts features of the environment 20 represented by the sensor data and builds a map of the floor surface 10 of the environment 20. The sensor data collected by the image capture device 140 may be used for techniques such as vision-based SLAM (VSLAM), in which the controller 109 extracts visual features corresponding to objects in the environment 20 and uses these visual features to build a map. As the controller 109 directs the robot 100 to move around the floor surface 10 during a mission, the controller 109 uses SLAM techniques to detect features represented in the collected sensor data and determine the placement of the robot 100 within the map by comparing those features with previously stored features. The map formed from the sensor data may show the placement of traversable and non-traversable spaces within the environment 20. For example, the placement of obstacles may be shown on the map as non-traversable spaces, and the placement of open floor spaces may be shown on the map as traversable spaces.
[0053] Sensor data collected by any of the sensors may be stored in the memory storage element 144. In addition, other data generated for the SLAM technique, including cartography data forming a map, may be stored in the memory storage element 144. This data generated during the performance of a mission may include persistent data generated during the performance of a mission and usable during the performance of a further mission. For example, the mission may be a first mission, and the further mission may be a second mission performed after the first mission. In addition to storing software for causing the robot 100 to perform its operations, the memory storage element 144 stores sensor data accessed by the controller 109 from one mission to another, or data resulting from the processing of the sensor data. For example, the map may be a persistent map usable and updatable by the controller 109 of the robot 100 from one mission to another to navigate the robot 100 around the floor surface 10.
[0054] The persistent data, including the persistent map, enables the robot 100 to efficiently clean the floor surface 10. For example, the persistent map enables the controller 109 to guide the robot 100 toward open floor spaces and avoid non-traversable spaces. Additionally, for subsequent missions, the controller 109 can plan the navigation of the robot 100 through the environment 20 by using the persistent map to optimize the path taken during the mission.
[0055] The sensor system may further include a dirt detection sensor 147 capable of detecting dirt on the floor surface 10 of the environment 20. The dirt detection sensor 147 may be used to detect portions of the floor surface 10 of the environment 20 that are dirtier than other portions of the floor surface 10 of the environment 20. In some implementations, the dirt detection sensor 147 (shown in FIG. 2 ) may detect the amount of dirt passing through the suction path 145 or the velocity of the dirt. The dirt detection sensor 147 may be an optical sensor configured to detect dirt as it passes through the suction path 145. Alternatively, the dirt detection sensor 147 may be a piezoelectric sensor that detects dirt when it hits a wall of the suction path 145. In some implementations, the dirt detection sensor 147 detects dirt before it is taken into the suction path 145 by the robot 100. The dirt detection sensor 147 may be, for example, an image capture device that captures images of a portion of the floor surface 10 in front of the robot 100. The controller 109 can then use these images to detect the presence of dirt on this portion of the floor surface 10.
[0056] The robot 100 may further include a wireless transceiver 149 (shown in FIG. 3A ). The wireless transceiver 149 enables the robot 100 to wirelessly communicate data with a communication network (e.g., communication network 185 described herein with respect to FIG. 4 ). The robot 100 may use the wireless transceiver 149 to send and receive data, for example, to receive data representing a map and transmit data representing cartographic data collected by the robot 100.
[0057] Exemplary Communication Network 4, an exemplary communication network 185 is illustrated. Nodes of the communication network 185 include a robot 100, a mobile device 188, an autonomous mobile robot 190, a cloud computing system 192, and smart devices 194a, 194b, and 194c. The robot 100, the mobile device 188, the robot 190, and the smart devices 194a, 194b, and 194c are network-connected devices, i.e., devices connected to the communication network 185. Using the communication network 185, the robot 100, the mobile device 188, the robot 190, the cloud computing system 192, and the smart devices 194a, 194b, and 194c can communicate with each other to send data to each other and receive data from each other.
[0058] In some implementations, the robot 100, the robot 190, or both the robot 100 and the robot 190 communicate with the mobile device 188 through a cloud computing system 192. Alternatively or additionally, the robot 100, the robot 190, or both the robot 100 and the robot 190 communicate directly with the mobile device 188. Various types and combinations of wireless networks (e.g., Bluetooth, radio frequency, optical-based, etc.) and network architectures (e.g., mesh networks) may be employed for the communications network 185.
[0059] In some implementations, the user computing device 31 (shown in FIG. 1A ) is a type of mobile device 188. The mobile device 188, as shown in FIG. 4 , may be a remote device that can be linked to a cloud computing system 192 and that can enable the user 30 to provide input to the mobile device 188. The mobile device 188 may include user input elements, such as, for example, one or more of a touchscreen display, buttons, a microphone, a mouse, a keyboard, or other devices that respond to input provided by the user 30. The mobile device 188 may alternatively or additionally include immersive media (e.g., virtual reality) that the user 30 interacts with to provide user input. In these cases, the mobile device 188 is, for example, a virtual reality headset or a head-mounted display. The user may provide inputs corresponding to commands to the mobile device 188. In such cases, the mobile device 188 transmits a signal to the cloud computing system 192 that causes the cloud computing system 192 to transmit a command signal to the robot 100. In some implementations, the mobile device 188 can present augmented reality images. In some implementations, the mobile device 188 is a smartphone, a laptop computer, a tablet computing device, or other mobile device.
[0060] In some implementations, communication network 185 can include additional nodes. For example, a node of communication network 185 can include an additional robot. Alternatively, or in addition, a node of communication network 185 can include a network-connected device. In some implementations, the network-connected device can generate information about environment 20. The network-connected device can include one or more sensors for detecting features of environment 20, such as an acoustic sensor, an image capture system, or other sensor that generates a signal from which features can be extracted. The network-connected device can include a home camera, a smart sensor, and the like.
[0061] In the communication network 185 shown in FIG. 4 and other implementations of the communication network 185, the wireless links may utilize various communication methods, protocols, and the like, such as Bluetooth class, Wi-Fi, Bluetooth-low-energy also known as BLE, 802.15.4, Worldwide Interoperability for Microwave Access (WiMAX), infrared channels, or satellite bands. In some cases, the wireless links include any cellular network standard used to communicate between mobile devices, including, but not limited to, standards recognized as 1G, 2G, 3G, or 4G. When employed, the network standard may recognize one or more generations of mobile communication standards by meeting specifications or standards, such as, for example, specifications maintained by the International Telecommunications Union. When employed, the 3G standard may correspond, for example, to the International Mobile Telecommunications-2000 (IMT-2000) specification, and the 4G standard may correspond to the International Mobile Telecommunications Advanced (IMT-Advanced) specification. Examples of cellular network standards include AMPS, GSM, GPRS, UMTS, LTE, LTE Advanced, Mobile WiMAX, and WiMAX-Advanced. Cellular network standards may use various channel access methods, for example, FDMA, TDMA, CDMA, or SDMA.
[0062] Smart devices 194a, 194b, 194c are electronic devices in an environment that are nodes in communications network 185. In some implementations, smart devices 194a, 194b, 194c include sensors suitable for monitoring the environment, for monitoring occupants of the environment, and for monitoring the operation of robot 100. These sensors may include, for example, image sensors, occupancy sensors, environmental sensors, and the like. The image sensors of smart devices 194a, 194b, 194c may include visible light, infrared cameras, sensors using other portions of the electromagnetic spectrum, and the like. Smart devices 194a, 194b, 194c transmit images generated by these image sensors over communications network 185. The occupancy sensors of smart devices 194a, 194b, 194c may include, for example, one or more of: passive or active transmissive or reflective infrared sensors; time-of-flight or triangulation distance sensors using light, sonar, or radio frequency; microphones for recognizing sounds or sound pressure characteristic of occupancy; airflow sensors; cameras; wireless receivers or transceivers for monitoring frequencies and / or WiFi frequencies for sufficiently strong received signal strength; light sensors capable of detecting ambient light, including natural and artificial lighting; and / or other suitable sensors for detecting the presence of user 30 or another occupant in the environment. Alternatively or additionally, the occupancy sensors may detect movement of user 30 or movement of robot 100. If the occupancy sensors are sufficiently sensitive to movement of robot 100, the occupancy sensors of smart devices 194a, 194b, 194c may generate signals indicative of movement of robot 100. Environmental sensors of smart devices 194a, 194b, 194c may include electronic thermometers, barometers, humidity or moisture sensors, gas detectors, airborne particle counters, etc. The smart devices 194a, 194b, 194c transmit sensor signals from a combination of image sensors, occupancy sensors, environmental sensors, and other sensors present within the smart devices 194a, 194b, 194c to the cloud computing system 192.These signals serve as input data to the cloud computing system 192 that executes the processes described herein to control or monitor the operation of the robot 100.
[0063] In some implementations, smart devices 194a, 194b, 194c are electronically controllable. Smart devices 194a, 194b, 194c can include multiple states and can be placed into a particular state in response to a command from another node in communication network 185, such as user 30, robot 100, robot 190, or another smart device. Smart devices 194a, 194b, 194c can include, for example, an electronically controllable door having an open and closed state, a lamp having multiple states that vary in on, off, and / or brightness, an elevator having states corresponding to different levels of an environment, or other devices that can be placed into different states.
[0064] Example Map As described herein, a map 195 of environment 20 may be constructed based on data collected by various nodes of communication network 185. Referring also to FIG. 5 , map 195 may include a plurality of labels 1...N associated with features 1...N within environment 20. Cartographic data 197 is generated, and portions of cartographic data 197, i.e., data 1...N, are each associated with a feature 1...N within environment 20. Network-connected devices 1...M can then access map 195 and use the labels 1...N on map 195 to control operation of devices 1...M.
[0065] Environment 20 can include multiple features, i.e., features 1...N. In some implementations, each of features 1...N has a corresponding current state and type. For example, a feature may be in a current state selected from multiple states. A feature also has a type that may be shared with other features having the same type. In some implementations, a feature can have a type where the current state of the feature may be a permanent state that generally does not change over a period of time, such as a month, a year, or multiple years. For example, a first feature's type may be "floor type," and the first feature's state may be "carpet." A second feature in the environment may have a type corresponding to "floor type," and the second feature's state may be "hardwood." In such implementations, the first feature and the second feature have the same type but different states. In some implementations, a feature can have a type where the feature's current state may generally be a temporary state that changes over a shorter period of time, such as an hour or a day. For example, a first feature may have a type of "door" and a current state of the first feature may be "closed." The first feature may be operated to place it in an "open" state, and such operation may generally occur over a shorter period of time. A second feature may also have a type corresponding to "door." Features of the same type may have the same possible states. For example, the possible states of the second feature, e.g., "open" and "closed," may be identical to the states of the first feature. In some implementations, for a feature having a "door" type, there may be three or more states, e.g., "closed," "closed and locked," "partially ajar," "open," etc.
[0066] Cartographic data 197 represents data indicative of features 1...N within environment 20. Sets 1...N of data in cartographic data 197 may indicate the current state and type of features 1...N within environment 20. Cartographic data 197 may indicate the geometry of the environment. For example, cartographic data 197 may indicate a room size (e.g., the area or volume of the room), a room dimension (e.g., the width, length, or height of the room), an environment size (e.g., the area or volume of the environment), an environment dimension (e.g., the width, length, or height of the room), a room shape, an environment shape, a room edge shape (e.g., an edge defining a boundary between a traversable area of the room and a non-traversable area of the room), a room edge shape (e.g., an edge defining a boundary between a traversable area of the environment and a non-traversable area of the environment), and / or other geometric features of the room or environment. Cartographic data 197 may indicate objects within the environment. For example, the cartography data 197 may indicate the location of an object, the type of object, the size of the object, the footprint of the object on the floor, whether the object is an obstacle to one or more devices in the environment, and / or other characteristics of objects in the environment.
[0067] The cartographic data 197 may be generated by different devices within the environment 20. In some implementations, a single autonomous mobile robot generates all of the cartographic data 197 using sensors on the robot. In some implementations, two or more autonomous mobile robots generate all of the cartographic data 197. In some implementations, two or more smart devices generate all of the cartographic data 197. One or more of these smart devices may include an autonomous mobile robot. In some implementations, a user, e.g., user 30, provides input for generating the cartographic data 197. For example, the user can operate a mobile device, e.g., mobile device 188, to generate the cartographic data 197. In some implementations, the user can operate the mobile device to upload an image showing the layout of the environment 20, which image can be used to generate the cartographic data 197. In some implementations, the user can provide input indicating the layout of the environment 20. For example, the user can draw the layout of the environment 20 using, for example, a touchscreen of the mobile device. In some implementations, a smart device used to generate at least a portion of the cartographic data 197 may include a device in the environment 20 that includes a sensor. For example, the device may include a mobile device, such as mobile device 188. An image capture device, a gyroscope, a global positioning system (GPS) sensor, a motion sensor, and / or other sensors on the mobile device may be used to generate the cartographic data 197. The cartographic data 197 may be generated as a user carrying the mobile device 188 moves around the environment 20. In some implementations, the user operates the mobile device 188 to capture images of the environment 20, which may be used to generate the cartographic data 197.
[0068] Map 195 is constructed based on cartographic data 197 and includes data indicative of features 1...N. In particular, data sets 1...N correspond to labels 1...N, respectively. In some implementations, data sets 1...N correspond to sensor data generated using sensors on devices in environment 20. For example, an autonomous mobile robot (e.g., robot 100 or robot 190) can be equipped with a sensor system that generates some of data sets 1...N. Alternatively, or in addition, a smart device other than an autonomous mobile robot can be equipped with a sensor system that generates some of data sets 1...N. For example, a smart device can be equipped with an image capture device that can capture images of environment 20. The images can serve as cartographic data and thus constitute some of data sets 1...N. In some implementations, one or more of data sets 1...N can correspond to data collected by multiple devices in environment 20. For example, one collection of data may correspond to a combination of data collected by a first device, e.g., a smart device or an autonomous mobile robot, and data collected by a second device, e.g., another smart device or another autonomous mobile robot. This one collection of data may be associated with a single label on the map 195.
[0069] Map 195 corresponds to data usable by various devices in environment 20 to control the operation of those devices. Map 195 can be used to control the behavior of devices in environment 20, such as autonomous mobile robots. Map 195 can also be used to provide indicators to users through devices, such as mobile devices. As described herein, map 195 can be labeled 1...N, which can each be usable by some or all of the devices in environment 20 to control behavior and operation. Map 195 further includes data representing the state of features 1...N associated with labels 1...N.
[0070] As described herein, map 195 may be labeled based on cartographic data 197. In this regard, in implementations in which multiple devices generate cartographic data 197, labels 1...N may be provided based on data from different devices. For example, one label may be presented on map 195 based on cartographic data collected by one device, while another label may be presented on map 195 based on cartographic data collected by another device.
[0071] In some implementations, map 195 having labels 1...N may be stored on one or more servers remote from the devices in environment 20. In the example shown in FIG. 4, cloud computing system 192 may host map 195, and each of the devices in communication network 185 may access map 195. Devices connected to communication network 185 may access map 195 from cloud computing system 192 and use map 195 to control their operations. In some implementations, one or more devices connected to communication network 185 may generate local maps based on map 195. For example, robot 100, robot 190, mobile device 188, and smart devices 194a, 194b, and 194c may include maps 196a-196f generated based on map 195. Maps 196a-196f may be copies of map 195 in some implementations. In some implementations, maps 196a-196f may include portions of map 195 that pertain to the operation of robot 100, robot 190, mobile device 188, and smart devices 194a, 194b, 194c. For example, each of maps 196a-196f may include a subset of labels 1...N on map 195, with each subset corresponding to the set of labels pertaining to a particular device using map 196a-196f.
[0072] Map 195 can provide the advantage of a single labeled map that is usable by each of the devices in environment 20. Rather than devices in environment 20 generating separate maps that may contain conflicting information, the devices may reference map 195, which is accessible to each of the devices. Each of the devices may use a local map, e.g., maps 196a-196f, which may be updated when map 195 is updated. Labels on maps 196a-196f are consistent with labels 1...N on map 195. In this regard, data collected by robot 100, robot 190, mobile device 188, and smart devices 194a, 194b, 194c can be used to update map 195, and any updates to map 195 can be readily used to update labels 1...N on each of maps 196a-196f, including the updated labels. For example, robot 190 can generate cartographic data used to update labels 1...N on map 195, and these updates to labels 1...N on map 195 can be propagated to labels on map 196a of robot 100. Similarly, in another example, in an implementation in which smart devices 194a, 194b, 194c include sensors for generating cartographic data, smart devices 194a, 194b, 194c can generate cartographic data used to update labels on map 195. Because the labels on maps 195, 196a-196f are consistent with each other, updates to these labels on map 195 can be easily propagated to, for example, map 196a of robot 100 and map 196b of robot 190.
[0073] Devices 1...M can receive at least a portion of map 195 that includes at least some of labels 1...N. In some implementations, one or more of devices 1...M are autonomous mobile robots, e.g., robot 100. The robot can initiate an action associated with one of labels 1...N. The robot can receive a subset of labels 1...N and initiate a corresponding action associated with each label in the subset. Because labels 1...N are associated with features 1...N in environment 20, actions initiated by the robot can react to the features, for example, avoid the features, follow a particular path regarding the features, use a particular navigation action when the robot is near the features, and use a particular cleaning action when the robot is near or on the features. Additionally, the portion of the map received by the robot can indicate the state or type of the features. The robot can therefore initiate a particular action responsive to the feature, the current state of the feature, the type of the feature, or a combination thereof.
[0074] In some implementations, one or more of the devices is a mobile device, e.g., mobile device 188. The mobile device can receive the subset of labels 1...N and provide feedback to the user based on the subset of labels 1...N. The mobile device can present an auditory, tactile, or visual indicator that indicates the labels 1...N. The indicator presented by the mobile device can indicate the placement of the feature, the current state of the feature, and / or the type of the feature.
[0075] In the example shown in FIG. 5, device 1 receives at least a portion of map 195 and data representing labels 1 and 2. Device 1 does not receive data representing labels 3...N. Device 2 also receives at least a portion of map 195. Like device 1, device 2 also receives data representing label 2. Unlike device 1, device 2 receives data representing label 3. Finally, device M receives at least a portion of map 195 and data representing label N.
[0076] Example Process Robot 100, robot 190, mobile device 188, and smart devices 194a, 194b, 194c may be controlled in several ways by processes described herein. Although some operations of these processes may be described as being performed by robot 100, by a user, by a computing device, or by other actors, these operations may, in some implementations, be performed by actors different from those described. For example, operations performed by robot 100 may, in some implementations, be performed by cloud computing system 192 or by another computing device (or multiple computing devices). In other examples, operations performed by user 30 may be performed by a computing device. In some implementations, cloud computing system 192 does not perform any operations. Rather, other computing devices perform the operations described as being performed by cloud computing system 192, and these computing devices may communicate directly (or indirectly) with each other and with robot 100. And, in some implementations, the robot 100 can perform the operations described as being performed by the cloud computing system 192 or the mobile device 188 in addition to the operations described as being performed by the robot 100. Other variations are possible. Furthermore, while the methods, processes, and operations described herein are described as including certain operations or sub-operations, in other implementations, one or more of these operations or sub-operations may be omitted, or additional operations or sub-operations may be added.
[0077] 6 shows a flowchart of a process 200 for using a map of an environment, e.g., environment 20 (shown in FIG. 1A), for example, to control an autonomous mobile robot and / or to control a mobile device. Process 200 includes operations 202, 204, 206, 208, 210, and 212. Although operations 202, 204, 206, 208, 210, and 212 are shown and described as being performed by robot 100, cloud computing system 192, or mobile device 188, as described herein, in other implementations, the actors performing these operations may be different.
[0078] In operation 202, cartographic data of the environment is generated. The cartographic data generated in operation 202 includes data associated with features in the environment, such as walls in the environment, placement of the smart device, dirty areas, obstacles in the environment, objects in the environment, debris in the environment, floor type, docking station 60, or areas in the environment that may cause an error condition for the autonomous mobile robot. As described herein with respect to FIG. 5, the cartographic data may be generated using sensors on devices in the environment. In the example shown in FIG. 6, the robot 100 may generate the cartographic data using a sensor system of the robot 100, such as the sensor system described with respect to FIGS. 2, 3A, and 3B.
[0079] In operation 204, the cartographic data is transmitted from the robot 100 to the cloud computing system 192. In operation 206, the cartographic data is received from the robot 100 by the cloud computing system 192. In some implementations, the robot 100 transmits the cartographic data while performing a cleaning mission. For example, the robot 100 can transmit the cartographic data to the cloud computing system 192 as the robot 100 generates the cartographic data in operation 202. In some implementations, the robot 100 transmits the cartographic data after completing a cleaning mission. For example, the robot 100 can transmit the cartographic data when the robot 100 is docked to the docking station 60.
[0080] In operation 208, a map is constructed to generate a map that includes labels associated with features in the environment. The labels are each associated with a portion of the cartographic data generated by the robot 100 in operation 202. The cloud computing system 192 may generate these labels. As described herein, each feature may have a corresponding label generated in operation 208.
[0081] After operation 208, operation 210 and / or operation 212 may be performed. In operation 210, the robot 100 initiates an action based on the feature associated with one of the labels. The robot 100 may generate cartographic data in operation 202 during a first cleaning mission and initiate an action in operation 210 during a second cleaning mission. In this regard, the map constructed in operation 208 may represent a persistent map that the robot 100 can use across multiple discrete cleaning missions. The robot 100 may collect cartographic data during each cleaning mission and may update the map constructed in operation 208 as well as the labels on the map provided in operation 208. The robot 100 may update the map with newly collected cartographic data during subsequent cleaning missions.
[0082] At operation 212, the mobile device 188 provides to the user an indicator of a feature associated with one of the labels. For example, the mobile device 188 may provide a visual representation of the map constructed at operation 208. The visual representation may show the visual arrangement of objects in the environment 20, e.g., the arrangement of walls and obstacles in the environment 20. The indicators of the features may indicate the location of the features and, as described herein, may indicate the current state and / or type of the features. The visual representation of the map of the environment 20 and the indicators of the features may be updated as additional cartographic data is collected.
[0083] Illustrative examples of an autonomous mobile robot that controls its operations based on a map and labels presented on the map can be described with respect to FIGS. 1A-1B, 7A-7D, 8A-8B, 9A-9D, 10A-10B, and 11A-11D. Referring again to FIG. 1A, robot 100 can generate cartographic data, such as cartographic data 197 described with respect to FIG. 5, used to construct a map, such as map 195 described with respect to FIG. 5. In some implementations, environment 20 includes other smart devices that can be used to generate cartographic data for constructing a map. For example, environment 20 includes image capture device 70a and image capture device 70b that are operable to capture images of environment 20. The images of environment 20 can also be used as cartographic data for constructing a map. In other implementations, additional smart devices in environment 20, as described herein, can be used to generate cartographic data for constructing a map.
[0084] The robot 100 generates cartographic data as the robot 100 is maneuvered to move around the environment 20 and clean the floor surface 10 within the environment 20. The robot 100 may generate cartographic data that indicates the configuration of walls and obstacles within the environment 20. In this regard, the cartographic data may indicate traversable and non-traversable portions of the floor surface 10. The cartographic data generated by the robot 100 may indicate other characteristics of the environment 20 as well. In the example shown in FIG. 1A , the environment 20 includes dirty regions 52 a, 52 b, and 52 c that correspond to regions on the floor surface 10. The dirty regions 52 a, 52 b, and 52 c may be detected by the robot 100 using, for example, a dirt detection sensor of the robot 100. The robot 100 may detect the dirty regions 52 a, 52 b, and 52 c during the performance of a first cleaning mission. Upon detecting these dirty regions 52 a, 52 b, and 52 c, the robot 100 generates portions of the cartographic data.
[0085] This portion of the cartographic data may also indicate the current status of the dirty areas 52a, 52b, and 52c. The number of possible states for the dirty areas 52a, 52b, and 52c is the same. As visually represented by indicators 66c, 66d, and 66e, the current status of the dirty areas 52a, 52b, and 52c may differ from one another. The statuses of the dirty areas 52a, 52b, and 52c correspond to first, second, and third levels of soiling. The status of the dirty area 52a is a "highly soiled" status, the status of the dirty area 52b is a "mediumly soiled" status, and the status of the dirty area 52c is a "lowly soiled" status. In other words, the dirty area 52a is more soiled than the dirty area 52b, which is more soiled than the dirty area 52c.
[0086] During a first cleaning mission, the robot 100 may initiate intensive cleaning operations in each of the soiled areas 52a, 52b, and 52c in response to detecting debris in the soiled areas 52a, 52b, and 52c during the first cleaning mission. For example, in response to detecting debris in the soiled areas 52a, 52b, and 52c, the robot 100 may initiate intensive cleaning operations to perform intensive cleaning of the soiled areas 52a, 52b, and 52c. In some implementations, the robot 100 may perform different degrees of cleaning for the soiled areas 52a, 52b, and 52c based on the amount of debris detected in the soiled areas 52a, 52b, and 52c or the percentage of debris collected by the robot 100 in the soiled areas 52a, 52b, and 52c. The degree of cleaning for the soiled area 52a may be greater than the degree of cleaning for the soiled area 52b and the degree of cleaning for the soiled area 52c.
[0087] Mapping data collected during the first cleaning mission, particularly mapping data indicating the soiled areas 52a, 52b, and 52c, can be used to control the operation of the robot 100 during a second cleaning mission. During the second cleaning mission, the robot 100 can initiate focused cleaning operations to intensively clean the soiled areas 52a, 52b, and 52c based on detecting debris in the soiled areas 52a, 52b, and 52c during the first cleaning mission. As described herein, detecting debris in the soiled areas 52a, 52b, and 52c during the first cleaning mission can be used to provide labels on a map that can be used to control the robot 100 during the second cleaning mission. In particular, the robot 100 can receive labels generated using the mapping data collected during the first cleaning mission. During the second cleaning mission, the robot 100 can initiate focused cleaning operations based on the labels on the map. The robot 100 initiates an intensive cleaning operation in response to detecting that the robot 100 is within a soiled area 52a, 52b, or 52c.
[0088] In some implementations, during the second cleaning mission, the robot 100 initiates intensive cleaning operations on the soiled areas 52a, 52b, 52c without first detecting debris in the soiled areas 52a, 52b, 52c during the second cleaning mission. If the robot 100 detects an amount of debris in the soiled areas 52a, 52b, 52c during the second cleaning mission that differs from the amount of debris in the soiled areas 52a, 52b, 52c during the first cleaning mission, the robot 100 can generate cartographic data that can be used to update the labels for the soiled areas 52a, 52b, 52c. In some implementations, the map can be updated such that the current state of the soiled areas 52a, 52b, 52c is updated to reflect the current level of soiling in the soiled areas 52a, 52b, 52c. In some implementations, based on mapping data from the second or further cleaning missions, the map may be updated to remove labels for soiled areas, for example, because the soiled areas no longer have a level of soiling that corresponds to at least a "low soiling" condition for the soiled areas.
[0089] 7A-7D illustrate another example of an autonomous cleaning robot that uses a labeled map to control cleaning operations on soiled areas. Referring to FIG. 7A, an autonomous cleaning robot 700 (similar to robot 100) initiates a first cleaning mission to clean a floor surface 702 in an environment 704. In some implementations, in performing the first cleaning mission, the robot 700 moves along a path 705 including multiple substantially parallel rows, e.g., rows extending along axes that form a minimum angle of no more than 5 to 10 degrees with respect to each other, to cover the floor surface 702. The path followed by the robot 700 can be selected such that the robot 700 passes over a traversable portion of the floor surface 702 at least once. During the first cleaning mission, the robot 700 detects enough debris to trigger intensive cleaning operations at locations 706a-706f.
[0090] 7B , cartographic data collected by the robot 700 can be used to construct a map of the environment 704, and at least a portion of the cartographic data generated by the robot 700 can be used to provide labels on the map indicating the dirty regions 708. For example, in some implementations, an area corresponding to the dirty regions 708 can be designated by, for example, a user operating a mobile device, and then the area can be labeled to indicate that the area corresponds to the dirty region 708. Alternatively, the area corresponding to the dirty region 708 can be labeled automatically. The dirty region 708 can include at least the locations 706a-706f. In some implementations, the width of the dirty region 708 is greater than the maximum widthwise distance between the locations 706a-706f, e.g., by 5% to 50%, 5% to 40%, 5% to 30%, or 5% to 20% greater, and the length of the dirty region 708 is greater than the maximum lengthwise distance between the locations 706a-706f. In some implementations, the dirty area 708 is 10% to 30% or less of the total area of the traversable portion of the environment 704, e.g., 10% to 20%, 15% to 25%, or 20% to 30% or less of the total area of the traversable portion of the environment 704.
[0091] The label for the soiled area 708 can then be used by the robot 700 in a second cleaning mission to initiate an intensive cleaning operation to perform intensive cleaning of the soiled area 708. Referring to FIG. 7C , in some implementations, in the second cleaning mission, the robot 700 follows a path 709 including multiple substantially parallel columns similar to the path 705 of FIG. 7A . The robot 700 moves along the path 709 to cover and clean the floor surface 702. Then, after completing the path 709, to perform intensive cleaning of the soiled area 708, the robot 700 initiates an intensive cleaning operation in which the robot 700 moves along a path 711 extending over the soiled area 708 to clean the soiled area 708 again. The robot 700 initiates this intensive cleaning operation based on the label for the soiled area 708 on the map. 7D , in the second cleaning mission, based on the label for the dirty area 708, the robot 700 begins operation to perform intensive cleaning of the dirty area 708 without covering most of the traversable portion of the floor surface 702 in the environment 704, so that the robot 700 does not have to spend time cleaning other portions of the traversable portion of the floor surface 702 in the environment 704. Even without moving along a path to cover most of the traversable portion of the floor surface 702 (e.g., path 709), after starting the second cleaning mission, the robot 700 moves along path 713 to the dirty area 708, then covers the dirty area 708 and cleans the dirty area 708.
[0092] Data indicative of debris in dirty areas 502a, 502b, 502c may correspond to a portion of the cartographic data used to construct the map and its labels, while in other implementations, data indicative of the navigational behavior of robot 100 may correspond to a portion of the cartographic data. FIGS. 8A-8B illustrate an example in which an autonomous cleaning robot 800 (similar to robot 100) moves along a floor surface 802 in an environment 804 and detects a door 806. Referring to FIG. 8A, during a first cleaning mission, robot 800 can move from a first room 808, through a hallway 809, through a door 810, and into a second room 812. Door 806 is in an open state during the first cleaning mission. Referring to FIG. 8B, during a second cleaning mission, robot 800 moves from the first room 808, through a hallway 809, and then encounters door 806. The robot 800 detects the door 806, for example, using its sensor system, its obstacle detection sensor, or image capture device, and detects that the door 806 is closed because the robot 800 cannot move from the hallway 809 to the second room 812.
[0093] Mapping data provided by the robot 800 is used to generate a label for the door 806 and can provide data indicating that the door 806 is in a closed state. In some implementations, when the door 806 is indicated to be in a closed state, the robot 800 can maneuver with respect to the door 806 in a manner that avoids the robot 800 coming into contact with the door 806. For example, rather than touching the door 806 and triggering a bump sensor of the robot 800, the robot 800 can move along the door 806 without touching it when the door 806 is in a closed state. The planned path through the door 806 can take into account the closed state of the door 806 so that the robot 800 does not need to use the bump sensor of the robot 800 to detect the state of the door 806 during the performance of the mission. By detecting the state of the door, the robot 800 can confirm that the door 806 is actually in a closed state, for example, using a proximity sensor or other sensor in the sensor system of the robot 800. In some implementations, upon first encountering the door 806 before its state is indicated on the map, the robot 800 may attempt to move past the door 806 by contacting the door 806 and following along the door 806 while contacting the door 806 multiple times. Such movement may generate mapping data that may be used to indicate on the map that the door 806 is in a closed state. During subsequent cleaning missions, such as in subsequent cleaning missions or in the same cleaning mission, when the robot 800 is near the door 806, the robot 800 may reduce attempts to move past the door 806. In particular, the robot 800 may detect that the door 806 is in a closed state, confirm that its state indicated on the map is correct, and then proceed to move relative to the door 806 as if it were a non-traversable obstacle.
[0094] In some implementations, a request can be issued to a user to move the door 806 open so that the robot 800 can clean the second room 812. In some implementations, if the door 806 is a smart door, the robot 800 can provide the command to move the door 806 open over a communication network (similar to the communication network 185 described herein). If the door 806 is an electronically controllable door, the robot 800 can transmit data to move the door 806 from a closed state to an open state.
[0095] 9A-9D illustrate an example of an autonomous cleaning robot 900 (similar to robot 100) performing a navigation operation along a floor surface 902 based on labels for a region 906 within an environment 904. Region 906 may be, for example, a raised portion of floor surface 902 (similar to raised portion 504 described herein) that cannot be easily traversed by robot 900 if robot 900 attempts to traverse it with certain navigation parameters, such as a certain approach angle, a certain speed, or a certain acceleration. In some cases, robot 900 may enter an error state when robot 900 attempts to traverse the raised portion. For example, one of robot 900's cliff sensors may be triggered when robot 900 traverses the raised portion, thereby triggering an error state and causing robot 900 to stop its cleaning mission. In a further example, region 906 may correspond to an area containing a length of cord or another flexible member that may become entangled in a rotatable member of robot 900 or in the wheels of robot 900. This may trigger an error condition in the robot 900.
[0096] 9A , during a first cleaning mission, the robot 900 successfully traverses an area 906. Mapping data generated by the robot 900 during the first cleaning mission indicates navigation parameters of the robot 900 as it successfully traverses the area 906. A map constructed from the mapping data includes a label associated with the area 906 as well as information indicating a first set of navigation parameters. These navigation parameters may include an approach angle, a velocity, or an acceleration relative to the area 906. The first set of navigation parameters is associated with a successful attempt to traverse the area 906.
[0097] 9B , in a second cleaning mission, the robot 900 attempts and fails to traverse the area 906. Mapping data generated by the robot 900 in the second cleaning mission indicates the navigation parameters of the robot 900 when the robot 900 failed to traverse the area 906. The map is updated to associate a label with information indicative of the second set of navigation parameters. The second set of navigation parameters is associated with an error condition. In this regard, based on the label and the second set of navigation parameters, the robot 900 can avoid the error condition by avoiding the second set of navigation parameters in subsequent cleaning missions.
[0098] 9C , in a third cleaning mission, the robot 900 attempts and fails to traverse region 906. Mapping data generated by the robot 900 in the third cleaning mission indicates the navigation parameters of the robot 900 as it attempts and fails to traverse region 906. The map is updated to associate a label with information indicative of the third set of navigation parameters. The third set of navigation parameters is associated with an error condition. In this regard, based on the label and the third set of navigation parameters, the robot 900 can avoid the error condition by avoiding the third set of navigation parameters in subsequent cleaning missions.
[0099] 9D , in the fourth cleaning mission, the robot 900 successfully traverses the area 906. The robot 900 may select a fourth set of navigation parameters based on, for example, the label and one or more of the first, second, or third sets of navigation parameters. The robot 900 may avoid a second path 908 associated with the second set of navigation parameters and a third path 909 associated with the third set of navigation parameters and instead select the first path 907 associated with the first set of navigation parameters. This fourth set of navigation parameters may be calculated based on two or more of the first, second, or third sets of navigation parameters. For example, based on the first, second, and third sets of navigation parameters, ranges of values for the navigation parameters that are likely to result in the robot 900 successfully traversing the area 906 may be calculated. Alternatively, the fourth set of navigation parameters may be the same as the first set of navigation parameters that successfully traversed the area 906 during the first cleaning mission.
[0100] 10A-10B illustrate an example of an autonomous cleaning robot 1000 (similar to robot 100) performing a navigation operation along a floor surface 1002 based on labels for an area 1006 within an environment 1004. Referring to FIG. 10A, during a first cleaning mission, the robot 1000 performing a first navigation operation moves on a path 1008 along the floor surface 1002. To cover the floor surface 1002, the robot 1000 initiates a covering operation in which the robot 1000 attempts to move in multiple substantially parallel rows along the floor surface 1002. The robot 1000 encounters obstacles 1010a-1010f near the area 1006 and, in response to detecting the obstacles using, for example, the robot's 1000 sensor system, avoids the obstacles 1010a-1010f. The robot 1000 can clean around the obstacles by using its sensors to follow the edges of the obstacles. In this regard, the path 1008 of the robot 1000 includes multiple instances in which the robot 1000 initiates obstacle avoidance behavior to avoid obstacles 1010a-1010f and initiates obstacle following behavior to clean around obstacles 1010a-1010f. In addition, the robot 1000 enters and exits the region 1006 through multiple entry and exit paths 1012a-1012f. In the example shown in Figure 10A, the region 1006 includes six entry and exit paths 1012a-1012f, and the robot 1000 enters and exits the region 1006 multiple times through at least some of these points.
[0101] A label associated with the region 1006 may be presented on a map constructed from cartographic data generated by the robot 1000. The label may indicate that the region 1006 is a cluttered region containing multiple densely packed obstacles resulting in several narrow entry and exit paths. For example, the multiple entry and exit paths 1012a-1012f may have widths between one and two widths of the robot 1000. The cluttered region may be defined in part by the distance between the obstacles. For example, the length of the cluttered region may be greater than the distance between the two obstacles furthest apart along a first dimension, and the width of the cluttered region may be greater than the distance between the two obstacles furthest apart along a second dimension. The first dimension may be perpendicular to the first dimension. In some implementations, the junk area can cover an area having a length of 1 to 5 meters, e.g., 1 to 2 meters, 2 to 3 meters, 3 to 4 meters, 4 to 5 meters, about 2 meters, about 3 meters, about 4 meters, etc., and a width of 1 to 5 meters, e.g., 1 to 2 meters, 2 to 3 meters, 3 to 4 meters, 4 to 5 meters, about 2 meters, about 3 meters, about 4 meters, etc.
[0102] 10B, during the second cleaning mission, the robot 1000 can plan a path 1014 that can more quickly clean the area 1006. In addition to using the sensor system of the robot 1000 to detect obstacles 1010a-1010f (shown in FIG. 10A) and then avoiding the obstacles 1010a-1010f based on detecting the obstacles 1010a-1010f, the robot 1000 can initiate cleaning actions based on its previous identification of the location of the debris. Rather than using only the obstacle detection sensors to initiate actions in response to detecting the obstacles 1010a-1010f, the robot 1000 can plan the path 1014 by relying on the map generated during the first cleaning mission. Portions of the path 1014 are more efficient than the path 1008. In a second navigation operation, selected at least in part based on the first navigation operation, the robot 1000 moves along the path 1014 during the second cleaning mission. In this second navigation operation, the robot 1000 enters the region 1006 fewer times than the robot entered the region in the first navigation operation. In particular, the number of entry points into the region 1006 for the path 1014 is fewer than the number of entry points into the region 1006 for the path 1008. In addition, the path 1014 may include multiple substantially parallel rows that are also substantially parallel to the length of the region 1006. In contrast, the path 1008 includes multiple substantially parallel rows that are perpendicular to the region 1006. Rather than initiating obstacle avoidance and obstacle following operations multiple times, the robot 1000 may initiate these operations fewer times so that the robot 1000 can clean the region 1006, as well as the area around the obstacle, in one portion of the cleaning mission rather than multiple different portions of the cleaning mission.
[0103] In some implementations, one or more of the obstacles 1010a-1010f may be removed from the environment 1004. If an obstacle is removed, the region 1006 may adjust in size, resulting in an adjustment of the label associated with the region 1006. In some implementations, once all of the obstacles 1010a-1010f have been removed, the region 1006 no longer exists and the label may be deleted. Mapping data collected by the robot 1000 on further cleaning missions may indicate the removal of the obstacles or the removal of all obstacles.
[0104] 11A-11D show an example of an autonomous mobile robot 1100 (shown in FIG. 11A) that generates mapping data usable by the autonomous mobile robot 1101 (shown in FIG. 11C) to navigate around a floor surface 1102 in an environment 1104. In some implementations, one or both of the robots 1100, 1101 are similar to the robot 100. In some implementations, one of the robots 1100, 1101 is a cleaning robot similar to the robot 100, and the other of the robots 1100, 1101 is an autonomous mobile robot having a drive system and a sensor system similar to the drive system and sensor system of the robot 100.
[0105] 11A , in a first mission, the robot 1100 moves around a floor surface 1102 and detects an object 1106. The robot 1100 detects the object 1106 using, for example, an image capture device on the robot 1100. Referring to FIG. 11B , as the robot 1100 continues to move around the floor surface 1102, the robot 1100 comes into contact with the object 1106 and uses an obstacle detection sensor to detect that the object 1106 is an obstacle to the robot 1100. The robot 1100 can then avoid the obstacle and complete its mission. In some implementations, the obstacle detection sensor is triggered even if the robot 1100 does not come into contact with the object 1106. The obstacle detection sensor may be a proximity sensor or other non-contact sensor for detecting an obstacle. In some implementations, the obstacle detection sensor of the robot 1100 is triggered by a feature in the environment near the object 1106. For example, the object 1106 may be near a feature in the environment that triggers an obstacle detection sensor of the robot 1100, and the robot 1100 can associate a visual image captured using an image capture device with the triggering of the obstacle detection sensor.
[0106] The mapping data generated by the robot 1100 may include visual images captured using an image capture device and obstacle detection results captured by an obstacle detection sensor. A label may be presented on the map indicating that the object 1106 is an obstacle, and the label may further be associated with the visual image of the object 1106.
[0107] 11C , in a second mission, the robot 1101 moves around the floor surface 1102 and detects an object 1106. For example, the robot 1101 can detect the object 1106 using an image capture device on the robot 1101. The visual image captured by the image capture device can match a visual image associated with a label for the object 1106. Based on this match, the robot 1101 can determine that the object 1106 is an obstacle or associate the detection of the object 1106 by the image capture device with an obstacle avoidance action. Referring to FIG. 11D , the robot 1101 can avoid the object 1106 without triggering an obstacle detection sensor. For example, if the obstacle detection sensor is a bump sensor, the robot 1101 can avoid the object 1106 without touching the obstacle and triggering the bump sensor. In some implementations, the robot 1101 can avoid triggering the bump sensor and can follow along the obstacle using a proximity sensor. By relying on a map generated from cartographic data collected by the robot 1100, the robot 1101 is able to avoid some sensor observations associated with the object 1106, particularly obstacle detection sensor observations.
[0108] In some implementations, the timing of the second mission can overlap with the timing of the first mission. The robot 1101 can be operating in the environment at the same time that the robot 1101 is operating in the environment.
[0109] Additional Alternative Implementations Although a number of implementations have been described, including alternative implementations, it will be understood that further alternative implementations are possible and that various modifications may be made.
[0110] 1B , the indicators 66a-66f are described as presenting indications of the status, type, and / or location of features within the environment 20. These indicators 66a-66f may be overlaid on the visual representation 40 of the map of the environment 20. The user device 31 may present other indicators in further implementations. For example, the user device 31 may present the current location of the robot 100, the current location of the docking station 60, the current state of the robot 100 (e.g., cleaning, docking, error state, etc.), or the current state of the docking station 60 (e.g., charging, draining, off, on, etc.). The user device 31 may also present an indicator of the path of the robot 100, the projected path of the robot 100, or a proposed path for the robot 100. In some implementations, the user device 31 may present a list of labels provided on the map. The list may include the current state and type of feature associated with the label.
[0111] Other labels may also be visually represented by the user device. For example, the maps of the environment described with respect to Figures 7A-7D, 8A-8B, 9A-9D, 10A-10B, and 11A-11D may be visually represented in a manner similar to visual representation 40 described with respect to Figure 1B. Additionally, the labels described with respect to Figures 7A-7D, 8A-8B, 9A-9D, 10A-10B, and 11A-11D may also be visually represented. For example, locations 706a-706f may be visually represented by indicators associated with labels and superimposed on the visual representation of the map of the environment. Dirty area 708, door 806, area 906, obstacles 1010a-1010f, area 1006, and object 1106 may also be visually represented with indicators.
[0112] The states of a dirty area are described as being "highly dirty," "medium dirty," and "lightly dirty." Other implementations are possible. For example, in some implementations, the possible states of a dirty area can include states indicating different frequencies of soiling. For example, a dirty area can have a "daily dirty" state indicating that the dirty area is soiled on a daily basis. For a dirty area having this state, based on the label of the dirty area and the "daily dirty" state, an autonomous cleaning robot can also initiate an intensive cleaning operation that performs intensive cleaning of the dirty area at least once a day. A dirty area can have a "weekly dirty" state indicating that the dirty area is soiled every week. For a dirty area having this state, an autonomous cleaning robot can initiate an intensive cleaning operation that performs intensive cleaning of the dirty area at least once a week.
[0113] Alternatively, or in addition, the possible states of a soiled area may include states that indicate periodicity of soiling. For example, a soiled area may have a month-specific soiling state, where the soiled area is soiled only during a particular month. For soiled areas having such a state, based on the soiled area's label and the month-specific soiling state, the autonomous cleaning robot can initiate an intensive cleaning operation that performs intensive cleaning of the soiled area only during the specified month. A soiled area may have a seasonal soiling state, where the soiled area is soiled only during a particular season, e.g., spring, summer, fall, or winter. For soiled areas having such a state, based on the soiled area's label and the seasonal soiling state, the autonomous cleaning robot can initiate an intensive cleaning operation that performs intensive cleaning of the soiled area only during the specified season.
[0114] Intensive cleaning operations may vary in implementation. In some implementations, intensive cleaning operations may involve increasing the vacuum power of the robot. For example, the vacuum power of the robot may be set to two or more different levels. In some implementations, intensive cleaning operations may involve slowing the robot's speed so that the robot spends more time in a particular area. In some implementations, intensive cleaning operations may involve passing through a particular area multiple times to make the area cleaner. In some implementations, intensive cleaning operations may involve a particular cleaning pattern, for example, a series of substantially parallel rows covering the particular area to be cleaned or a spiral pattern covering the particular area to be cleaned.
[0115] The labels described herein may vary in implementation. In some implementations, the labels may be associated with different floor types within an environment. For example, a first label may be associated with a portion of a floor surface that includes a carpet floor type, and a second label may be associated with a portion of a floor surface that includes a tile floor type. A first autonomous cleaning robot may initiate a navigation operation based on the first label and the second label, where the first robot moves over and cleans both carpet and tile. The first robot may be a vacuum robot suitable for cleaning both types of floors. A second autonomous cleaning robot may initiate a navigation operation based on the first label and the second label, where the second robot moves over and cleans only tile. The second robot may be a wet cleaning robot not suitable for cleaning carpet.
[0116] In some implementations, some objects in an environment can be correlated with some labels such that a label can be provided in response to mapping data indicating the object. For example, as described herein, a label for a dirty region can be provided on a map in response to mapping data indicating the detection of debris. In some implementations, an object can have a type associated with the dirty region. For example, a label for a dirty region can be presented on a map in response to detection of the object by an autonomous mobile robot, an image capture device on the robot, or an image capture device in the environment. When a new object of the same type is moved into the environment, a new label for the dirty region can be presented on the map. Similarly, when a robot is moved to a new environment and operated in the new environment, the map created for the new environment can be automatically populated with labels for dirty regions based on the detection of objects of the same type. For example, an object can be a table, and in response to the detection of other tables in the environment, a label associated with the dirty region can be provided on the map. In another example, an object can be a window, and in response to the detection of other windows in the environment, a label associated with the dirty region can be provided on the map.
[0117] An object type may be automatically associated with a dirty area through detection by a device in the environment. For example, the cloud computing system may determine that a dirty area detected using a dirt detection sensor correlates with detection of a table in the environment by an image capture device in the environment. Based on this determination, the cloud computing system may provide a label associated with the dirty area in response to receiving data indicating a new table added to the environment. Alternatively, or in addition, an object type may be manually associated with a dirty area. For example, a user may provide a command correlating a particular object, such as a table, with the dirty area, such that a label for the dirty area is provided on the map when the table is detected. Alternatively, or in addition, a user may provide instructions to perform intensive cleaning within an area on a floor surface of the environment. In some implementations, the cloud computing system may determine that the area corresponds to an area covered by or near a particular type of object in the environment. The cloud computing system may accordingly correlate a user-selected area for intensive cleaning with an object type, such that a label associated with the intensive cleaning operation is created when an object of this type is detected.
[0118] In some implementations, user confirmation is requested before the label is provided. For example, the robot or mobile device presents a request for user confirmation, and the user provides the request through a user input on the robot or mobile device, e.g., a touchscreen, keyboard, button, or other suitable user input. In some implementations, the label is provided automatically, and the user can operate the robot or mobile device to remove the label.
[0119] 8A-8B, the robot 800 can transmit data that causes a user to issue a request to change the state of a door. In other implementations, the autonomous cleaning robot can transmit data that causes a user to issue a request to change the state of another object in the environment. For example, the request can correspond to a request to move an obstacle, a request to reorient an obstacle, a request to rearrange carpeting in an area, a request to unfold part of carpeting in an area, or a request to adjust the state of another object.
[0120] Although an autonomous cleaning robot is described herein, in some implementations, other mobile robots may be used. For example, robot 100 is a vacuum cleaning robot. In some implementations, an autonomous wet cleaning robot may be used. The robot may include a pad attachable to the bottom of the robot, which the robot may use to perform cleaning missions in which the robot scrubs floor surfaces. The robot may include a system similar to that described with respect to robot 100. In some implementations, a patrol robot with an image capture device may be used. The patrol robot may include a mechanism for moving the image capture device relative to the body of the patrol robot. Although robot 100 is described as a circular robot, in other implementations, robot 100 may be a robot including a substantially rectangular front portion and a substantially semicircular rear portion. In some implementations, robot 100 has a substantially rectangular periphery.
[0121] Robot 100 and some other robots described herein are described as performing cleaning missions. In some implementations, robot 100 or other autonomous mobile robots in environment 20 perform other types of missions. For example, the robot can perform a vacuum mission in which the robot's vacuum system operates to suck up debris on the floor surface of the environment. The robot can perform a patrol mission in which the robot moves across the floor surface and captures images of the environment that can be presented to a user through a remote mobile device.
[0122] Some implementations are described herein with respect to multiple cleaning missions, where in a first cleaning mission, the autonomous cleaning robot generates cartographic data indicating features, and then labels are provided based on the cartographic data. For example, FIGS. 7A-7D are described with respect to a first cleaning mission and a second cleaning mission. In some implementations, the robot 700 can perform the intensive cleaning behavior described with respect to FIGS. 7C and 7D in the same cleaning mission in which the robot 700 detects a dirty area 708 as described with respect to FIGS. 7A and 7B. For example, the robot 700 can detect enough debris at locations 706a-706f, and a label for the dirty area 708 can be provided during the performance of a single cleaning mission. The robot 700 can move over the dirty area 708 again after first detecting debris at locations 706a-706f and after a label for the dirty area 708 is provided during the performance of this single cleaning mission. The robot 700 can then begin the intensive cleaning behavior described with respect to FIG. 7C. In some implementations, after the robot 700 has covered a majority of the traversable portion of the floor surface 702, it can again move over the soiled area 708, specifically in the same cleaning mission in which the robot 700 first detected debris at locations 706a-706f. In this regard, the intensive cleaning behavior described with respect to FIG. 7D can be performed during the same cleaning mission in which locations 706a-706f were detected and used to present a label for the soiled area 708. Similarly, referring again to FIG. 1A , the labels for the soiled areas 52a, 52b, and 52c can be presented during the same cleaning mission in which the soiled areas 52a, 52b, and 52c were first detected. The robot 100 can return to these areas during the same cleaning mission and initiate an intensive cleaning behavior based on the labels for these soiled areas 52a, 52b, and 52c.
[0123] 8A-8B , the robot 800 encounters the door 806 during the second cleaning mission. In some implementations, the robot 800 may encounter the door 806 during the first cleaning mission. For example, the robot 800 may encounter the door 806 during the same cleaning mission in which the robot 800 moves from the first room 808 to the second room 812 without encountering the door 806. The robot 800 may encounter the door 806 during a second pass through the environment 804. The door 806 may transition from an open state to a closed state during the first cleaning mission. As a result, the state of the door 806, as labeled on the map, may change during the first cleaning mission, and the robot 800 may adjust its operation accordingly during the first cleaning mission.
[0124] 9A-9D are described with respect to the first through fourth cleaning missions. In some implementations, the operations described with respect to FIGS. 9A-9D can occur during three or fewer cleaning missions. For example, the robot 900 can attempt to traverse or traverse the area 906 multiple times during the performance of a single cleaning mission. The robot 900 can perform the operations described with respect to FIG. 9D in the same cleaning mission in which the robot 900 first successfully traverses the area 906 (as described with respect to FIG. 9A) and then unsuccessfully attempts to traverse the area 906 (as described with respect to FIGS. 9B and 9C).
[0125] 10A-10B, the robot 1000 can perform the operations described with respect to Figure 10B in the same cleaning mission in which the robot 1000 performs the first navigation operation described with respect to Figure 10A. The robot 1000 can, for example, move around the environment 1004 a second time in the first cleaning mission, moving through the area 1006 in the manner described with respect to Figure 10B to more quickly clean the area 1006.
[0126] In some implementations, cartographic data generated by a first robot, e.g., robot 100, robot 700, robot 800, robot 900, robot 1000, or robot 1100, is generated to build and label a map, and then a second autonomous mobile robot can access the map to initiate operations as described herein. The first robot can generate cartographic data in a first mission, and the second robot can access the map generated from the cartographic data to use during the performance of the second mission to control the behavior of the second robot. The first and second missions may overlap in time. For example, the end time of the first mission may be after the start time of the second mission.
[0127] In some implementations, the user device presents indicators superimposed on an image of the environment. For example, in an augmented reality mode, an image of the environment is presented on the user device, and indicators similar to those described herein may be presented superimposed on the image of the environment.
[0128] The robots and techniques described herein, or portions thereof, may be controlled by a computer program product comprising instructions stored on one or more non-transitory machine-readable storage media and executable on one or more processing devices to control (e.g., coordinate) the operations described herein. The robots described herein, or portions thereof, may be embodied as all or part of an apparatus or electronic system that may include one or more processing devices and memory for storing executable instructions that implement various operations.
[0129] Operations associated with implementing all or a portion of the robotic operation and control described herein may be performed by one or more programmable processors that execute one or more computer programs to perform the functions described herein. For example, a mobile device, a cloud computing system configured to communicate with the mobile device and the autonomous cleaning robot, and the robot's controller may all include a processor programmed with a computer program to perform functions such as transmitting signals, calculating estimates, or interpreting signals. The computer program may be written in any form of programming language, including compiled or interpreted languages, and may be deployed in any form, including a standalone program, or a module, component, subroutine, or other unit suitable for use in a computing environment.
[0130] The controllers and mobile devices described herein may include one or more processors. Processors suitable for executing computer programs include, for example, general-purpose microprocessors, special-purpose microprocessors, and any one or more processors of any kind of digital computer. Typically, a processor receives instructions and data from read-only and / or random-access memory. Elements of a computer include one or more processors for executing instructions and one or more storage devices for storing instructions and data. Typically, a computer also includes one or more machine-readable storage media, such as a high-capacity PCB for storing data, e.g., magnetic, magneto-optical, or optical disks, operatively coupled to receive data from or transfer data to them, or both. Machine-readable storage media suitable for embodying computer program instructions and data include all forms of non-volatile storage, including, for example, semiconductor storage devices, e.g., EPROM, EEPROM, and flash storage devices, magnetic disks, e.g., internal or removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks.
[0131] The robot control and manipulation techniques described herein may be applicable to controlling other mobile robots besides cleaning robots. For example, a lawn mowing robot or a space surveillance robot may be trained to perform operations on a specific portion of a lawn or space as described herein.
[0132] Elements of different implementations described herein may be combined to form other implementations not specifically described above. Elements may be removed from the structure described herein without adversely affecting their operation. Furthermore, various separate elements may be combined into one or more individual elements to perform the functions described herein.
[0133] A number of implementations have now been described. Nevertheless, it will be understood that various modifications may be made. Accordingly, other implementations are within the scope of the claims. [Explanation of symbols]
[0134] 10 Floor 20 Environment 30 users 31 User Computing Devices 40 Visual Representation 50a, 50b doors 52a, 52b, 52c Dirty areas 54 Raised area 60 Docking Station 62a, 62b indicator 64a, 64b, 64c indicators 65 indicators 66a~66f Indicator 70a, 70b Image capture device 100 Autonomous Cleaning Robot 105 Garbage 106 Electrical Circuits 108 Housing Infrastructure 109 Controller 110 Drive System 112 Drive wheels 113 Bottom 114 Motor 115 Passive Caster Wheel 116 Cleaning Assembly 117 Cleaning Entrance 118 Rotatable member 119 Vacuum System 120 motor 121 Rear part 122 Front part 124 Trash Can 126 Brushes 128 motor 134 Cliff Sensor 136a, 136b, 136c proximity sensors 138 Bumper 139a, 139b Bump sensors 140 Image Capture Device 142 Top 141 Obstacle Following Sensor 144 Memory storage element 145 Suction Path 146, 148 parallel horizontal axis 147 Dust detection sensor 149 Wireless Transceiver 150, 152 side surfaces 154 Anterior surface 156, 158 Corner surface 162 center 180 Optical Detector 182, 184 Optical emitter 185 Communication Networks 188 Mobile Devices 190 Autonomous Mobile Robot 192 Cloud Computing Systems 194a, 194b, 194c Smart Devices 195 Map 196a~196f Map 197 Cartography Data 200 processes 202, 204, 206, 208, 210, 212 Operations 700 Autonomous Cleaning Robot 702 Floor 704 Environment 705 Route 706a~706f arrangement 708 Dirty Area 709 Route 713 Route 800 Autonomous Cleaning Robot 802 Floor 804 Environment 806 Door 808 Room 1 809 Hallway 810 Doors 812 Second Room 900 Autonomous Cleaning Robot 902 Floor 904 Environment 906 area 907 First Route 908 Second Route 909 Third Route 1000 Autonomous Cleaning Robots 1002 Floor 1004 Environment 1006 area 1008 Route 1010a~1010f Obstacles 1012a~1012f Entrance and exit route 1014 Route 1100 Autonomous Mobile Robot 1101 Autonomous Mobile Robot 1102 Floor 1104 Environment 1106 Object
Claims
1. In a given environment, constructing a map of the environment based on cartographic data generated by a first device, the map constructing including providing labels associated with features in the environment; providing the map to an autonomous cleaning robot in the environment, the autonomous cleaning robot being different from the first device; causing the autonomous cleaning robot to initiate an action associated with the feature based on the label as the autonomous cleaning robot navigates through the environment; A method comprising:
2. The method of claim 1 , wherein the first device comprises a second autonomous cleaning robot.
3. the characteristics include obstacles detected by sensors of the second autonomous cleaning robot as the second autonomous cleaning robot navigates through the environment; 3. The method of claim 2, wherein initiating the autonomous cleaning robot in an action comprises navigating the autonomous cleaning robot around the obstacle.
4. Navigating the autonomous cleaning robot around the obstacle comprises: causing the autonomous cleaning robot to match a first visual image of the obstacle captured by the autonomous cleaning robot with a second visual image of the obstacle captured by the second autonomous cleaning robot; causing the autonomous cleaning robot to initiate an obstacle avoidance behavior based on a match between the first visual image and the second visual image; 4. The method of claim 3, comprising:
5. Providing the map to the autonomous cleaning robot includes:
3. The method of claim 2, further comprising providing an image captured by a camera of the second autonomous cleaning robot to the autonomous cleaning robot.
6. the cartographic data is generated by the second autonomous cleaning robot during a first mission of the second autonomous cleaning robot; the autonomous cleaning robot is caused to initiate the operation during a second mission of the autonomous cleaning robot; 3. The method of claim 2, wherein the first mission and the second mission overlap in time.
7. receiving second mapping data from the autonomous cleaning robot or from a second device different from the first device; providing updates to the map based on the second cartographic data to the first device; Contains 2. The method of claim 1 .
8. the first device includes an occupancy sensor; The method of claim 1 , wherein initiating the action by the autonomous cleaning robot is based on an occupancy state detected by the occupancy sensor.
9. The first device Electronically controlled doors, or It's an elevator 2. The method of claim 1 .
10. The method of claim 1 , wherein the action associated with the feature includes at least one of an approach angle to the feature, a navigation speed, an acceleration, or a specific path to the feature.
11. the cartographic data indicates the state of the feature; and The method of claim 1 , wherein initiating the action by the autonomous cleaning robot is based on the state of the feature.
12. 1. A non-transitory computer-readable storage medium, comprising: When executed by one or more processors of a computing system, the computing system comprises: In a given environment, constructing a map of the environment based on cartographic data generated by a first device, wherein constructing the map includes providing labels associated with features in the environment; providing the map to an autonomous cleaning robot in the environment that is different from the first device; causing the autonomous cleaning robot to initiate an action associated with the feature based on the label as the autonomous cleaning robot navigates through the environment; 10. A non-transitory computer-readable storage medium storing instructions for causing a
13. The non-transitory computer-readable storage medium of claim 12 , wherein the first device comprises a second autonomous cleaning robot.
14. the characteristics include obstacles detected by sensors of the second autonomous cleaning robot as the second autonomous cleaning robot navigates through the environment; 14. The non-transitory computer-readable storage medium of claim 13, wherein initiating the autonomous cleaning robot to perform the action includes navigating the autonomous cleaning robot around the obstacle.
15. Navigating the autonomous cleaning robot around the obstacle may include: causing the autonomous cleaning robot to match a first visual image of the obstacle captured by the autonomous cleaning robot with a second visual image of the obstacle captured by the second autonomous cleaning robot; causing the autonomous cleaning robot to initiate an obstacle avoidance behavior based on a match between the first visual image and the second visual image; 15. The non-transitory computer-readable storage medium of claim 14, comprising:
16. Providing the map to the autonomous cleaning robot comprises:
14. The non-transitory computer-readable storage medium of claim 13, further comprising providing an image captured by a camera of the second autonomous cleaning robot to the autonomous cleaning robot.
17. the cartographic data is generated by the second autonomous cleaning robot during a first mission of the second autonomous cleaning robot; the autonomous cleaning robot is caused to initiate the operation during a second mission of the autonomous cleaning robot; 14. The non-transitory computer-readable storage medium of claim 13, wherein the first mission and the second mission overlap in time.
18. The instructions may include: receiving second mapping data from the autonomous cleaning robot or from a second device different from the first device; providing updates to the map based on the second cartographic data to the first device; 13. The non-transitory computer-readable storage medium of claim 12, wherein the non-transitory computer-readable storage medium causes the
19. the first device includes an occupancy sensor; The non-transitory computer-readable storage medium of claim 12 , wherein initiating the action by the autonomous cleaning robot is based on an occupancy state detected by the occupancy sensor.
20. 13. The non-transitory computer-readable storage medium of claim 12, wherein the action associated with the feature includes at least one of an approach angle to the feature, a navigation speed, an acceleration, or a specific path to the feature.
Citation Information
Patent Citations
Device and method for autonomous self-localization
JP2018532204A
Adaptive mapping with spatial summaries of sensor data
JP2019057312A
System for spot cleaning by a mobile robot
US20190208979A1
Method for controlling an autonomous, mobile robot
WO2018158248A2