Map creation for an autonomous mobile robot
By creating intelligent maps that label environmental features, autonomous mobile robots can efficiently plan paths and allocate cleaning resources, addressing navigation and cleaning challenges and enhancing their operational reliability and efficiency.
Patent Information
- Application Number
- JP2022203660
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-08-09
- Filing Date
- 2022-12-20
- Publication Date
- 2025-06-18
- Estimated Expiration
- 2040-04-01
AI Technical Summary
Autonomous mobile robots face challenges in efficiently navigating and cleaning environments due to the lack of effective map creation and intelligent path planning, leading to potential error states and inefficient resource allocation.
The implementation of a system that allows autonomous mobile robots to create intelligent robot-facing maps of their environment, labeling features such as doors and dirty areas, and using this data to plan paths and select operations based on feature states, thereby improving navigation and cleaning efficiency.
This approach enhances the reliability and efficiency of autonomous mobile robots by allowing them to intelligently plan paths, avoid error states, and concentrate cleaning efforts on areas that require more attention, leading to improved work performance and fleet management.
Smart Images

Figure 0007695227000001 
Figure 0007695227000002 
Figure 0007695227000003
Abstract
Description
Technical Field
[0001] This specification relates to map creation, particularly map creation for autonomous mobile robots.
Background Art
[0002] Autonomous mobile robots include, for example, autonomous cleaning robots that autonomously perform cleaning operations within an environment, such as within a home. Many types of cleaning robots are autonomous to some extent and in different ways. The cleaning robot is provided with a controller, and this controller may be configured to autonomously navigate a robot that moves around within the environment so that the robot can pick up dust while moving.
Summary of the Invention
Problems to be Solved by the Invention
[0003] As the autonomous mobile cleaning robot moves around in the environment, the robot can collect data that can be used to construct 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 state of the features can also be further shown on the map. The robot can select an operation based on these labels and the states of the features associated with these labels. For example, the feature may be a door labeled and shown on the map, and the state of the door may be open or closed. When the door is in the closed state, the robot can select a navigation operation that does not attempt to cross the threshold of the door, and when the door is in the open state, the robot can select a navigation operation that attempts to cross the threshold of the door. The intelligent robot-facing map is visually represented in a user-readable form in which both the labels and the states of the features are visually presented to the user, whereby the user can view the representation of the robot-facing map and can easily provide commands directly related to the labels on the robot-facing map.
[0004] The advantages of the foregoing may include, without limitation, those described below and those described elsewhere in this specification.
Means for Solving the Problems
[0005] The implementation forms described in this specification can improve the reliability of an autonomous mobile robot that traverses the environment without encountering error states and can improve the work achievement performance. The autonomous mobile robot does not rely only on the immediate response of the autonomous mobile robot to the detection of features by its sensor system, but relies on the data collected from previous missions and can intelligently plan the path around the environment to avoid error states. In subsequent cleaning missions after the first cleaning mission in which the robot discovers a feature, the robot can plan around the feature to avoid the risk of triggering an error state associated with the feature. In addition, the robot can intelligently plan the execution of the mission using the data collected from the previous mission so that the robot can concentrate on areas within the environment that require more attention.
[0006] The implementation forms described in this specification can improve fleet management for autonomous mobile robots that may cross similar or overlapping areas. The map-making data shared among the autonomous mobile robots in the fleet improves map construction efficiency, smoothens smart action selection within the environment for the robots in the fleet, and enables the robots to learn more quickly about notable features in the environment, such as features that require further attention by the robots, features that may trigger an error state for the robots, or features that may have a changing state that would affect the operation of the robots. 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. The first robot may be equipped with a more advanced set of sensors than the sensors mounted on a second robot in the fleet. The first robot equipped with the more advanced set of sensors can generate map-making data that the second robot could not generate, and then the first robot could provide the map-making data to the second robot, for example, by providing the map-making data to a remote computing device accessible by the second robot. Even if the second robot does not have sensors capable of generating certain map-making data, the second robot can use the map-making data to improve its achievement ability when performing tasks within the home. Further, the second robot may be provided with some sensors capable of collecting map-making data usable by the first robot, whereby the fleet of autonomous mobile robots can generate map-making data more quickly for constructing a map of the home.
[0007] The implementation forms described in this specification may enable an autonomous mobile robot to integrate with other smart devices in the environment. The environment can include several smart devices that can be connected to a network accessible to each other or by the devices in the environment. These smart devices can include one or more autonomous mobile robots, and the smart devices can work together with the autonomous mobile robot to generate mapping data that can be used by the robot to navigate the environment and perform operations in the environment. Each of the smart devices in the environment can generate data that can be used to construct a map. Then, the robot can use this map to improve its ability to perform operations in the environment and improve the efficiency of the paths it takes in the environment.
[0008] Furthermore, when integrated with other smart devices, the autonomous mobile robot can be configured to control other smart devices so that the robot can cross the environment without being obstructed by some smart devices. For example, the environment can include a smart door and an autonomous mobile robot. In response to detecting the smart door, the robot can operate the smart door to ensure that the smart door is open, whereby the robot can 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] The implementation forms described in this specification can improve the efficiency of the navigation of an autonomous mobile robot in an environment. The autonomous mobile robot can plan a path through the environment based on the constructed map, and the planned path can enable the robot to traverse the environment more efficiently to perform operations than an autonomous mobile robot that traverses the environment and performs operations without the aid of the map. In a further example, the autonomous mobile robot can plan a path that enables the robot to move efficiently among obstacles in the environment. The obstacles can be arranged, for example, in a way that increases the likelihood that the robot will adopt an inefficient strategy. With a 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 the features in the environment can affect the paths that the robot can take to traverse the environment. In this regard, by knowing the states of the features in the environment, the robot can plan a path that avoids the features when the features 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 closed and can plan a path through both the first room and the second room when the door is open.
[0010] The implementation forms described in this specification can reduce the likelihood that an autonomous mobile robot will trigger an error state. For example, the autonomous mobile robot can select a navigation operation within a room area based on features along a part of the floor surface within that area. The features can be, for example, raised portions of the floor surface, and the robot may increase the risk of getting stuck along this floor surface when traversing the raised portions. The robot can select a navigation operation, such as the angle or speed at which the robot approaches the raised portion, that will reduce the likelihood that the robot will get stuck on the raised portion.
[0011] The implementation forms described in this specification can further improve the cleaning efficiency of an autonomous cleaning robot used for cleaning the floor surface of an environment. Labels on a map can correspond to, for example, dirty areas within the environment. The autonomous cleaning robot can select an operation for each dirty area depending on the state of each dirty area, for example, the degree of dirt in each dirty area. For a dirtier area, this operation can cause the robot to spend more time crossing the area, cross the area multiple times, or increase the suction force to cross the area. By selectively starting operations according to the dirtiness of the area, the robot can more effectively clean the dirtier areas of the environment.
[0012] The implementation forms described in this specification can bring a richer user experience in several aspects. First, the labels can provide an improved visualization of the map of the autonomous mobile robot. These labels form a common reference frame for the robot and the user to communicate. Compared with a map without labels, the map described in this specification may be more easily understandable by the user when presented to the user. In addition, the map enables the robot to be more easily used and controlled by the user.
[0013] In one aspect, the method includes constructing a map of the environment based on mapping data generated by an autonomous cleaning robot within the environment during the execution of a first cleaning mission. The step of constructing the map includes providing labels associated with a part of the mapping data. The method includes displaying a visual representation of the environment based on the map and a visual indicator of the labels on a remote computing device. The method includes causing the autonomous cleaning robot to start an operation associated with the label during the execution of a second cleaning mission.
[0014] In another aspect, the autonomous cleaning robot comprises a drive system that supports the autonomous cleaning robot on the floor surface within the environment. The drive system is configured to enable the autonomous cleaning robot to move around on the floor surface. The autonomous cleaning robot comprises a cleaning assembly for cleaning the floor surface while the autonomous cleaning robot moves around 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 for performing operations including creating mapping data of the environment using the sensor system during the execution of a first cleaning mission, and starting an operation during the execution of a second cleaning mission based on labels within a map constructed from the mapping data. The labels are associated with a part of the mapping data generated during the execution of the first cleaning mission.
[0015] In another aspect, the mobile computing device comprises 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 for performing operations including presenting, using the display, a visual representation of the environment based on mapping data generated by an autonomous cleaning robot within the environment during the execution of a first cleaning mission, a visual indicator of a label associated with a part of the mapping data, and a visual indicator of the state of a feature within 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 mapping data generated by the autonomous cleaning robot during the execution of a second cleaning mission.
[0016] In some implementations, the label is associated with a feature in an environment that is associated with a portion of the map-making data. The feature in the environment can have a number of states, including a first state and a second state. The step of causing the autonomous cleaning robot to start an operation associated with the label during the performance of a second cleaning mission includes causing the autonomous cleaning robot to start the operation based on the feature being in the first state during the performance of 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 map-making data is a first portion of the map-making data. The step of constructing the map may include providing a second label associated with a second portion of the map-making data. The second label can be associated with a second feature in the environment having a feature type and a number of states. The method can include causing a 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 an image of the first feature and an 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 causing the autonomous cleaning robot to start an operation based on the second feature being in the first state during the performance of the second cleaning mission. In some implementations, the operation is a first operation, and the method further includes causing the autonomous cleaning robot to start a second operation based on the second feature being in the second state during the performance of the second cleaning mission.
[0017] In some implementations, the step of causing the autonomous cleaning robot to start an operation based on the feature being in the first state during the execution of the second cleaning mission includes causing the autonomous cleaning robot to start an operation in response to the autonomous cleaning robot detecting that the feature is in the first state.
[0018] In some implementations, the feature is an area of the floor surface in the environment. The first state may be a first level of dirtiness of the area of the floor surface, and the second state may be a second level of dirtiness of the area. In some implementations, the autonomous cleaning robot in the first operation associated with the first state provides a first degree of cleaning within an area that is greater than a second degree of cleaning of the area in the second operation associated with the second state. In some implementations, the area is a first area, the label is a first label, and a portion of the mapping data is a first portion of the mapping data. Constructing the map may include providing a second label associated with a second portion of the mapping data. The second label may be associated with a second area in the environment having a number of states. In some implementations, the label is a first label and the area is a first area. The first area may be associated with a first object in the environment. The method may further include providing a second label associated with a second area 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. The second area may be associated with the second object.
[0019] In some implementations, the feature is a door within an environment between a first part of the environment and a second part of the environment, the first state is the open state of the door, and the second state is the closed state of the door. In some implementations, the autonomous cleaning robot in the first action associated with the open state moves from the first part of the environment to the second part of the environment. The autonomous cleaning robot in the second action associated with the closed state can detect the door and can provide an instruction to move the door to the open state. In some implementations, the door is in the open state, and during the execution of the second cleaning mission, the door is in the closed state. In some implementations, the door is the first door, the label is the first label, and a part of the mapping data is the first part of the mapping data. Constructing the map may include providing a second label associated with the second part of the mapping data. The second label may be associated with a second door within the environment having a number of states. In some implementations, the method further includes the step of causing the remote computing device to issue a request for the user to operate a door in the closed state to the open state. In some implementations, the door is an electronically controllable door. The step of causing the autonomous cleaning robot to start an operation based on the feature being in the first state during the execution of the second cleaning mission may include causing the autonomous cleaning robot to transmit data for causing the electronically controllable door to move from the closed state to the open state.
[0020] In some implementations, the method further includes causing the 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 within an environment associated with a first navigation operation of the autonomous cleaning robot during the 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 cross the area. The autonomous cleaning robot can initiate a second navigation operation to cross the area. In some implementations, the mapping data is first mapping data. The label may be associated with a part of the second mapping data collected during the performance of a third cleaning mission. A part of the second mapping data may be associated with a third navigation operation in which the autonomous cleaning robot crosses the area. The parameters of the second navigation operation can be selected to match the parameters of the third navigation operation. In some implementations, this parameter is the speed of the autonomous cleaning robot or the approach angle of the autonomous cleaning robot with respect to the area. In some implementations, in the first navigation operation, the autonomous cleaning robot moves along a first path through the area, and the first path has a first number of entry points to 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 to the area that is less than the first number of entry points. In some implementations, the mapping data is the first mapping data, and the method includes the step of deleting the label in response to the second mapping data generated by the autonomous cleaning robot indicating the removal of one or more obstacles from the area.
[0022] In some implementations, the map is accessible by a plurality of electronic devices within the environment. The plurality of electronic devices can include the autonomous cleaning robot. In some implementations, the autonomous cleaning robot is a first autonomous cleaning robot, and the plurality of electronic devices within the environment includes a second autonomous cleaning robot.
[0023] In some implementations, a portion of the map creation data is associated with obstacles in the environment. The method may further include causing the autonomous mobile robot to detect the obstacles and avoid the obstacles without contacting them, based on the labels.
[0024] In some implementations, the labels are associated with features in the environment that are associated with a portion of the map creation data. The features in the environment can have a number of states including a first state and a second state. The portion of the map creation 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 transmitting data for causing 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.
[0025] Details of one or more implementations of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other potential features, aspects, and advantages will become apparent from the description, the drawings, and the claims. [Appended Claim 1] A method comprising: constructing a map of the environment based on map creation data generated by an autonomous cleaning robot within the environment during a first cleaning mission, the constructing of the map including providing a label associated with a portion of the map creation data; causing the remote computing device to present a visual representation of the environment based on the map and a visual indicator of the label; and causing the autonomous cleaning robot to initiate an operation associated with the label during a second cleaning mission. [Appended Claim 2] The label is associated with a feature in the environment associated with the portion of the map creation data, and the feature in the environment has a number of states including a first state and a second state. The step of causing the autonomous cleaning robot to start the operation associated with the label during the execution of the second cleaning mission includes the step of causing the autonomous cleaning robot to start the operation based on the feature being in the first state during the execution of the second cleaning mission. The method according to claim 1. [Claim 3] The feature is a first feature having a feature type, the label is a first label, and the portion of the map creation data is a first portion of the map creation data. The step of constructing the map includes providing a second label associated with a second portion of the map creation data, the second label being associated with a second feature in the environment having the feature type and the number of states. The method further includes causing the remote computing device to present a visual indicator of the second label. The method according to claim 2. [Claim 4] The method according to claim 3 further includes 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. [Claim 5] The image of the first feature and the image of the second feature are captured by the autonomous cleaning robot. The method according to claim 4. [Claim 6] 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. The method according to claim 4. [Claim 7] The method according to claim 3 further includes causing the autonomous cleaning robot to start the operation based on the second feature being in the first state during the execution of the second cleaning mission. [Additional Item 8] The operation is a first operation, and the method further includes, based on the second feature being in the second state during the execution of the second cleaning mission, starting a second operation on the autonomous cleaning robot, as described in Additional Item 3 of the method. [Additional Item 9] The step of starting the operation on the autonomous cleaning robot based on the feature being in the first state during the execution of the second cleaning mission includes, in response to the autonomous cleaning robot detecting that the feature is in the first state, starting the operation on the autonomous cleaning robot, as described in Additional Item 2 of the method. [Additional Item 10] The feature is an area of the floor surface in the environment, The first state is a first level of dirt in the area of the floor surface, and the second state is a second level of dirt in the area, as described in Additional Item 2 of the method. [Additional Item 11] The autonomous cleaning robot in the 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 the second operation associated with the second state, as described in Additional Item 10 of the method. [Additional Item 12] The area is a first area, the label is a first label, and the part of the mapping data is a first part of the mapping data, The step of constructing the map includes providing a second label associated with a second part of the mapping data, the second label being associated with a second area in the environment having the number of states, as described in Additional Item 10 of the method. [Additional Item 13] The label is a first label and the area is a first area, The first area is associated with a first object in the environment, The method further includes the step of providing a second label associated with a 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, wherein the second region is associated with the second object, as described in appended claim 10. [Appended claim 14] The feature is a door in the environment between a first portion of the environment and a second portion of the environment, wherein the first state is the open state of the door and the second state is the closed state of the door, as described in appended claim 2. [Appended claim 15] The autonomous cleaning robot in the first operation 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 the second operation associated with the closed state detects the door and provides an instruction to move the door to the open state, as described in appended claim 14. [Appended claim 16] During the execution of the first cleaning mission, the door is in the open state, and during the execution of the second cleaning mission, the door is in the closed state, as described in appended claim 15. [Appended claim 17] The door is a first door, the label is a first label, and the portion of the map-making data is a first portion of the map-making data, The step of constructing the map includes the step of providing a second label associated with a second portion of the map-making data, wherein the second label is associated with a second door in the environment having the number of states, as described in appended claim 14. [Appended claim 18] The method further includes the step of causing the remote computing device to issue a request for a user to operate the door in the closed state to the open state, as described in appended claim 14. [Appended claim 19] The door is an electronically controllable door, and the step of causing the autonomous cleaning robot to start the operation based on the feature being in the first state during the execution of the second cleaning mission includes causing the autonomous cleaning robot to transmit data for moving the electronically controllable door from the closed state to the open state. The method according to claim 14. [Claim 20] The method according to claim 2, further comprising the step of causing the remote computing device to issue a request to change the state of the feature. [Claim 21] The label is associated with a region in the environment associated with a first navigation operation of the autonomous cleaning robot during the execution of the first cleaning mission, and the operation is a second navigation operation selected based on the first navigation operation. The method according to claim 1. [Claim 22] In the first navigation operation, the autonomous cleaning robot does not cross the region, The autonomous cleaning robot starts the second navigation operation to cross the region. The method according to claim 21. [Claim 23] The map creation data is first map creation data, The label is associated with a part of second map creation data collected during the execution of a third cleaning mission, and the part of the second map creation data is associated with a third navigation operation in which the autonomous cleaning robot crosses the region, The parameters of the second navigation operation are selected to match the parameters of the third navigation operation. The method according to claim 21. [Claim 24] The parameter is the speed of the autonomous cleaning robot or the approach angle of the autonomous cleaning robot with respect to the region. The method according to claim 23. [Claim 25] In the first navigation operation, the autonomous cleaning robot moves along a first path passing through the area, and the first path has a first number of entry points to the area. The method according to claim 21, wherein the autonomous cleaning robot starts a second navigation operation of moving along a second path passing through the area, and the second path has a second number of entry points to the area that is less than the first number of entry points. [Claim 26] The map creation data is first map creation data. The method according to claim 25, further comprising the step of deleting the label in response to the second map creation data generated by the autonomous cleaning robot indicating the removal of one or more obstacles from the area. [Claim 27] The method according to claim 1, wherein the map is accessible by a plurality of electronic devices in the environment, and the plurality of electronic devices includes the autonomous cleaning robot. [Claim 28] The method according to 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. [Claim 29] The portion of the map creation data is associated with obstacles in the environment. The method according to claim 1, further comprising the step of causing the autonomous mobile robot to avoid the obstacle without contacting the obstacle and detect the obstacle based on the label. [Claim 30] The label is associated with a feature in the environment associated with the portion of the map creation data, and the feature in the environment has a number of states including a first state and a second state. The portion of the map creation data is associated with the first state of the feature. The method according to claim 1, further comprising causing the remote computing device to present a visual indicator indicating that the feature is in the first state. [Claim 31] The method according to claim 30, further comprising transmitting data for causing 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. [Claim 32] An autonomous cleaning robot, A drive system for supporting the autonomous cleaning robot on a floor surface in an environment, the drive system being configured to move the autonomous cleaning robot around on the floor surface, a drive system, A cleaning assembly for cleaning the floor surface when the autonomous cleaning robot moves around on the floor surface, A sensor system, A controller operably connected to the drive system, the cleaning assembly, and the sensor system, the controller being configured to execute instructions to perform operations, the operations including: Generating map-making data of the environment using the sensor system during the execution of a first cleaning mission; Starting an operation during the execution of a second cleaning mission based on a label in a map constructed from the map-making data, the label being associated with a part of the map-making data generated during the execution of the first cleaning mission, an autonomous cleaning robot comprising a controller. [Claim 33] A mobile computing device, A user input device, A display, A controller operably connected to the user input device and the display, the controller being configured to execute instructions to perform operations, the operations including: Using the display, present a visual representation of the environment based on the mapping data generated by the autonomous cleaning robot within the environment during the execution of the first cleaning mission, a visual indicator of the label associated with a part of the mapping data, and a visual indicator of the state of the feature within the environment associated with the label. A mobile computing device comprising a controller including updating the visual indicator of the label and the visual indicator of the state of the feature based on mapping data generated by the autonomous cleaning robot during the execution of a second cleaning mission.
Brief Description of the Drawings
[0026]
Fig. 1A
Fig. 1B
Fig. 2
Fig. 3A
Fig. 3B
Fig. 4
Fig. 5
Fig. 6
Fig. 7A
Fig. 7B
Fig. 7C
Fig. 7D
Fig. 8A
Fig. 8B
Fig. 9A
Fig. 9B
Fig. 9C
Fig. 9D
Fig. 10A
Fig. 10B
Fig. 11A
Fig. 11B
Fig. 11C
Fig. 11D
Embodiments for Carrying Out the Invention
[0027] Like reference numerals and names in the various drawings indicate like elements.
[0028] The autonomous mobile robot can be controlled to move around on the floor surface within the environment. When these robots move around on the floor surface, the robot can generate mapping data, for example, by using sensors attached to the robot, and then the mapping data can be used to construct a labeled map. The labels on the map may correspond to features within the environment. The robot can initiate operations that depend on the labels and also on the state of the features within the environment. Further, the user can monitor the environment and the robot using the visual representation of the labeled map.
[0029] FIG. 1A shows an example of an autonomous cleaning robot 100 on a floor surface 10 within an environment 20, such as within 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 around on the floor surface 10, the robot 100 generates mapping data that can be used to generate a map of the environment 20. The robot 100 can be controlled to autonomously, for example, by a controller of the robot 100, manually by a user 30 operating the user computing device 31, or otherwise, to initiate actions in response to features within the environment 20. For example, features within the environment 20 include doors 50a, 50b, dirty areas 52a, 52b, 52c, and a raised portion 54 (e.g., a threshold between rooms within the environment 20). The robot 100 can include one or more sensors capable of detecting these features. As described herein, one or more of these features can be labeled within a map constructed from mapping data collected by the robot 100. Labels for these features are used by the robot 100 to initiate specific actions associated with the label and can be visually represented on the visual representation of the map presented to the user 30. As shown in FIG. 1B, the visual representation 40 of the map includes indicators 62a, 62b for the doors 50a, 50b, indicators 64a, 64b, 64c for the dirty areas 52a, 52b, 52c, and an indicator 65 for the raised portion 54. In addition, the visual representation 40 further includes indicators 66a - 66f of the state, type, and / or arrangement of features within the environment 20. For example, indicators 66a - 66e each indicate the current state of the doors 50a, 50b, and the dirty areas 52a, 52b, 52c, and indicators 66a - 66f each indicate the feature type of the doors 50a, 50b, the dirty areas 52a, 52b, 52c, and the raised portion 54. For example, the type of the doors 50a, 50b is shown as "door", and the states of the doors 50a, 50b are shown as "closed state" and "open state", respectively.The types of the dirty regions 52a, 52b, and 52c are shown as "dirty regions", and the states of the dirty regions 52a, 52b, and 52c are shown as "high degree of dirt", "medium degree of dirt", and "low degree of dirt", respectively.
[0030] Exemplary autonomous mobile robot Figures 2 and 3A - 3B show an example of the robot 100. Referring to Figure 2, the robot 100 collects dust 105 from the floor 10 when the robot 100 crosses the floor 10. The robot 100 can be used to perform one or more cleaning missions within the environment 20 (shown in Figure 1A) to clean the floor 10. The user can send a command to start a cleaning mission to the robot 100. For example, when receiving a start command, the user can send a start command to cause the robot 100 to start a cleaning mission. In another example, the user can provide a schedule that causes the robot 100 to start a cleaning mission at the scheduled time shown in the schedule. The schedule can include multiple scheduled times at which the robot 100 starts a cleaning mission. In some implementations, during the period from the start to the end of a single cleaning mission, the robot 100 can stop the cleaning mission to charge the robot 100, for example, to charge the energy storage unit of the robot 100. Then, the robot 100 can resume the cleaning mission after the robot 100 is fully charged. The robot 100 can automatically charge at the docking station 60 (shown in Figure 1A). In some implementations, in addition to charging the robot 100, the docking station 60 can discharge dust from the robot 100 when the robot 100 is docked at the docking station 60.
[0031] Referring to FIG. 3A, the robot 100 includes a housing infrastructure 108. The housing infrastructure 108 can define the structural periphery of the robot 100. In some examples, the housing infrastructure 108 includes a chassis, a cover, a bottom plate, and a bumper assembly. The robot 100 is a household robot having a small outer shape so that the robot 100 can fit under furniture in a household. For example, the height H1 of the robot 100 with respect to the floor surface (shown in FIG. 2) can be 13 centimeters or less. The robot 100 is also compact. The overall length L1 of the robot 100 (shown in FIG. 2) and the overall width W1 (shown in FIG. 3A) are each between 30 and 60 centimeters, for example, 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 that includes one or more drive wheels. The drive system 110 further includes one or more electric motors that include an electrically driven portion that forms part of the electric circuit 106. The housing infrastructure 108 supports the electric circuit 106 that includes 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 can be propelled in a forward drive direction F or a reverse drive direction R. The robot 100 can also be propelled such that the robot 100 turns at a given location or turns while moving in the forward drive direction F or the reverse drive direction R. In the example shown in FIG. 3A, the robot 100 includes drive wheels 112 that penetrate the bottom 113 of the housing infrastructure 108. The drive wheels 112 are rotated by a motor 114 to move the robot 100 along the floor surface 10. The robot 100 further includes passive caster wheels 115 that penetrate the bottom 113 of the housing infrastructure 108. The caster wheels 115 are not powered. Together, the drive wheels 112 and the caster wheels 115 cooperate to support the housing infrastructure 108 on 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 in front of the caster wheels 115.
[0034] Referring to FIG. 3B, the robot 100 includes a front portion 122 that is substantially rectangular and a rear portion 121 that is substantially semi-circular. 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] In the example shown in FIGS. 2, 3A, and 3B, the robot 100 is an autonomous mobile floor cleaning robot including a cleaning assembly 116 (shown in FIG. 3A) operable to clean the floor surface 10. For example, the robot 100 is a vacuum cleaning robot operable to clean the floor surface 10 by the cleaning assembly 116 taking in dust 105 (shown in FIG. 2) from the floor surface 10. The cleaning assembly 116 includes a cleaning inlet 117 through which dust passes when collected by the robot 100. The cleaning inlet 117 is positioned in front of the center of the robot 100, for example, in front of the center 162, and along the front portion 122 of the robot 100 between the side surfaces 150, 152 of the front portion 122.
[0036] The cleaning assembly 116 includes one or more rotatable members, for example, a rotatable member 118 driven by a motor 120. The rotatable member 118 extends horizontally across the front portion 122 of the robot 100. The rotatable member 118 is positioned along the front portion 122 of the housing infrastructure 108 and extends along a width corresponding to 75% to 95% of the width of the front portion 122 of the housing infrastructure 108, for example, along a width corresponding to the overall width W1 of the robot 100. Also referring to FIG. 2, the cleaning inlet 117 is positioned between the rotatable members 118.
[0037] As shown in FIG. 2, the rotatable member 118 is a roller that rotates in opposite directions with respect to each other. For example, the rotatable member 118 is rotatable about parallel horizontal axes 146, 148 (shown in FIG. 3A), thereby agitating the dust 105 on the floor surface 10, directing the dust 105 towards the cleaning inlet 117 within the robot 100, feeding it to the cleaning inlet 117, and feeding it into the suction path 145 (shown in FIG. 2). Referring again to FIG. 3A, the rotatable member 118 can be positioned so as to fit entirely within the front portion 122 of the robot 100. The rotatable member 118 includes an elastomeric shell that contacts the dust 105 on the floor surface 10 when the rotatable member 118 rotates with respect to the housing infrastructure 108, passes the dust 105 through the cleaning inlet 117 between the rotatable members 118, and guides it into the interior of the robot 100, for example, into the dust bin 124 (shown in FIG. 2). The rotatable member 118 further contacts the floor surface 10 and agitates the dust 105 on the floor surface 10.
[0038] The robot 100 includes a vacuum system 119 that is operable to generate an air flow that enters the dust bin 124 through the cleaning inlet 117 between the rotatable members 118. The vacuum system 119 includes an impeller and a motor for rotating the impeller to generate an air flow. The vacuum system 119 cooperates with the cleaning assembly 116 to draw the dust 105 from the floor surface 10 into the dust bin 124. In some cases, the air flow generated by the vacuum system 119 generates sufficient force to draw the dust 105 on the floor surface 10 upward through the gap between the rotatable members 118 and into the dust bin 124. In some implementations, the rotatable member 118 contacts the floor surface 10 and agitates the dust 105 on the floor surface 10, thereby enabling the dust 105 to be more easily captured by the air flow generated by the vacuum system 119.
[0039] Robot 100 further includes a brush 126 that rotates about a non-horizontal axis, for example, an axis that forms an angle between 75 degrees and 90 degrees with respect to the floor surface 10. The non-horizontal axis forms an angle between 75 degrees and 90 degrees with respect to the longitudinal axis of the rotatable member 118, for example. 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 laterally offset from the front-rear axis FA of the robot 100 such that the brush 126 extends beyond the outer periphery of the housing infrastructure 108 of the robot 100. For example, the brush 126 can extend beyond one of the side surfaces 150, 152 of the robot 100, thereby engaging debris in a portion of the floor surface 10 that the rotatable member 118 typically cannot reach, for example, a portion of the floor surface 10 outside of a portion of the floor surface 10 directly beneath 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, for example, 0.2 centimeters, for example, 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 such that the brush 126 can easily engage debris 105 on the floor surface 10.
[0041] The brush 126 is rotatable about a non-horizontal axis in such a manner that when the robot 100 moves, it feeds the dust on the floor surface 10 into the cleaning path of the cleaning assembly 116 with the brush. For example, in the case where the robot 100 is moving in the forward driving direction F, the brush 126 is rotatable in the clockwise direction (when viewed from the perspective above the robot 100) so that the dust contacted by the brush 126 moves toward the cleaning assembly and also toward a part of the floor surface 10 in front of the cleaning assembly 116 in the forward driving direction F. As a result, when the robot 100 moves in the forward driving direction F, the cleaning inlet 117 of the robot 100 can collect the dust swept by the brush 126. In the case where the robot 100 is moving in the rearward driving direction R, the brush 126 is rotatable in the counterclockwise direction (when viewed from the perspective above the robot 100) so that the dust contacted by the brush 126 moves toward a part of the floor surface 10 behind the cleaning assembly 116 in the rearward driving direction R. As a result, when the robot 100 moves in the rearward driving direction R, the cleaning inlet 117 of the robot 100 can collect the dust swept by the brush 126.
[0042] In addition to the controller 109, the electrical circuit 106 includes, for example, a memory storage element 144 and a sensor system having one or more electrical sensors. The sensor system can generate a signal indicating the current placement of the robot 100 and can generate a signal indicating the placement 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 for performing 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, referring 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, which can detect the presence or absence of an object beneath the optical sensor, such as the floor surface 10. Thus, the cliff sensors 134 can detect obstacles such as drop-offs and cliffs beneath a portion of the robot 100 where the cliff sensors 134 are disposed and can accordingly redirect the robot.
[0043] Referring to FIG. 3B, the sensor system includes one or more proximity sensors that can detect objects along the floor surface 10 near the robot 100. For example, the sensor system can include proximity sensors 136a, 136b, 136c disposed adjacent to 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 within the environment 20 of the robot 100.
[0044] The sensor system comprises a bumper system including a bumper 138 and one or more bumper 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 and further a front surface 154. The sensor system can comprise, for example, bumper sensors 139a, 139b. The bumper sensors 139a, 139b can include break beam sensors, capacitance sensors, or other sensors that can detect contact between the robot 100, for example the bumper 138 and an object in the environment 20. In some implementations, the bumper sensor 139a can be used to detect movement of the bumper 138 along the fore-aft axis FA (shown in FIG. 3A) of the robot 100, and the bumper sensor 139b can be used to detect movement of the bumper 138 along the 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 contacts the object, and the bumper sensors 139a, 139b can detect an object contacting the bumper 138, for example, in response to the robot 100 contacting the object.
[0045] The sensor system comprises one or more obstacle-following sensors. For example, the robot 100 can comprise 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 driving 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 within the environment 20 of the robot 100. In some implementations, the sensor system can comprise an obstacle-following sensor along the side surface 152, and the obstacle-following sensor can detect the presence or absence of an object adjacent to the side surface 152. The obstacle-following sensor 141 along the side surface 150 is a right obstacle-following sensor, and the obstacle-following sensor along the side surface 152 is a left obstacle-following sensor. The one or more obstacle-following sensors, including the obstacle-following sensor 141, can also function as an obstacle detection sensor, similar to the proximity sensors described herein, for example. In this regard, the left obstacle-following sensor can be used to determine the distance between an object on the left side of the robot 100, such as an obstacle surface, and the robot 100, and the right obstacle-following sensor can be used to determine the distance between an object on the right side of the robot 100, such as an obstacle surface, and the 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, for example, outward in a horizontal direction, and the optical detector detects the reflection of the light beam reflected from an object near the robot 100. The robot 100 can determine the time of flight of the light beam, and thereby the distance between the optical detector and the object, and thus the distance between the robot 100 and the object, using, for example, the controller 109.
[0047] In some implementations, the proximity sensor 136a includes an optical detector 180 and a plurality of optical emitters 182, 184. One of the optical emitters 182, 184 may be positioned to direct a light beam outwardly and downwardly, and the other of the optical emitters 182, 184 may be positioned to direct a light beam outwardly and upwardly. The optical detector 180 can detect the reflection of the light beam or the 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 irradiates a horizontal line along a vertical plane in front of the robot 100. In some implementations, the optical emitters 182, 184 each radiate a fan-shaped beam outwardly toward an obstacle surface such that a one-dimensional grid of dots appears on the obstacle surface. The one-dimensional grid of dots can be positioned on a line extending in the horizontal direction. In some implementations, the grid of dots can extend across a plurality of obstacle surfaces, for example, a plurality of adjacent obstacle surfaces. The optical detector 180 can capture an image representing the grid of dots formed by the optical emitter 182 and the grid of dots formed by the optical emitter 184. Based on the size of the dots in the image, the robot 100 can determine the distance of the object on which the dots appear, for example, with respect to the optical detector 180 or with respect to the robot 100. The robot 100 can make this determination for each of the dots, and thus, thereby, the robot 100 can determine the shape of the object on which the dots appear. In addition, if a plurality of objects are in front of the robot 100, the robot 100 can determine the shape of each of the objects. In some implementations, the object can include one or more objects that are laterally offset from a portion of the floor surface 10 immediately in front of the robot 100.
[0048] The sensor system further comprises an image capture device 140, such as a camera, directed towards 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 around on the floor surface 10. The image capture device 140 is angled in an upward direction, for example, at an angle between 30 degrees and 80 degrees from the floor surface 10 on which the robot 100 navigates. The camera can capture an image of the wall surface of the environment 20 such that features corresponding to objects on the wall surface can be used for localization when angled upward.
[0049] When the controller 109 causes the robot 100 to execute a mission, the controller 109 operates the motor 114 to drive the drive wheels 112 and propel the robot 100 along the floor surface 10. In addition, the controller 109 operates the motor 120 to rotate the rotatable member 118, operates the motor 128 to rotate the brush 126, and operates the motor of the vacuum system 119 to generate an air flow. To cause the robot 100 to perform various navigation and cleaning operations, the controller 109 executes software stored on the memory storage element 144 that causes the robot 100 to execute 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 an operation.
[0050] The sensor system can further include sensors for tracking the distance the robot 100 has traveled. For example, the sensor system can include encoders associated with the motors 114 for the drive wheels 112, and these encoders can track the distance the robot 100 has traveled. In some implementations, the sensor system includes an optical sensor facing downward toward the floor. The optical sensor can be an optical mouse sensor. For example, the optical sensor can be positioned to direct light through the bottom surface of the robot 100 and toward the floor 10. The optical sensor can detect the reflection of light and detect the distance the robot 100 has traveled based on changes in the floor features as the robot 100 moves along the floor 10.
[0051] The controller 109 uses the data collected by the sensors of the sensor system to control the navigation operations of the robot 100 during mission execution. For example, the controller 109 uses the 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 bumper sensors 139a, 139b, to enable the robot 100 to avoid obstacles in the environment 20 of the robot 100 during mission execution.
[0052] Sensor data can be used by controller 109 for a simultaneous localization and mapping (SLAM) technique in which controller 109 extracts features of environment 20 represented by the sensor data and constructs a map of floor 10 of environment 20. Sensor data collected by image capture device 140 can be used in techniques such as vision-based SLAM (VSLAM) in which controller 109 extracts visual features corresponding to objects in environment 20 and uses these visual features to construct a map. When controller 109 instructs robot 100 to move around on floor 10 during mission execution, controller 109 uses the SLAM technique to detect features represented by the collected sensor data and determines the placement of robot 100 within the map by comparing those features to features previously stored in memory. A map formed from the sensor data can indicate the placement of traversable and non-traversable spaces within environment 20. For example, the placement of obstacles is shown on the map as non-traversable spaces and the placement of open floor spaces is 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 technology, including map-making data that forms a map, may be stored in the memory storage element 144. These data generated during the execution of the mission can include persistent data that is generated during the execution of the mission and can be used during the execution of further missions. 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 execute its operations, the memory storage element 144 stores sensor data accessed by the controller 109 between one mission and another, or data obtained as a result of the processing of sensor data. For example, the map is a persistent map that can be used and updated by the controller 109 of the robot 100 between one mission and another to navigate the robot 100 moving around the floor surface 10.
[0054] Persistent data, including the persistent map, enables the robot 100 to efficiently clean the floor surface 10. For example, with the persistent map, the controller 109 can guide the robot 100 towards the available floor space and avoid spaces that cannot be crossed. Further, for subsequent missions, the controller 109 can plan the navigation of the robot 100 through the environment 20 by optimizing the path taken during the execution of the mission using the persistent map.
[0055] The sensor system can further include a dust detection sensor 147 capable of detecting dust on the floor surface 10 of the environment 20. The dust detection sensor 147 can be used to detect a portion of the floor surface 10 of the environment 20 that is dirtier than other portions of the floor surface 10 of the environment 20. In some implementations, the dust detection sensor 147 (shown in FIG. 2) can detect the amount of dust passing through the suction path 145 or the speed of the dust. The dust detection sensor 147 can be an optical sensor configured to detect dust when the dust passes through the suction path 145. Alternatively, the dust detection sensor 147 can be a piezoelectric sensor configured to detect dust when the dust collides with the wall of the suction path 145. In some implementations, the dust detection sensor 147 detects dust before the dust is taken into the suction path 145 by the robot 100. The dust detection sensor 147 can be, for example, an image capture device that captures an image 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 dust in this portion of the floor surface 10.
[0056] The robot 100 can further include a wireless transceiver 149 (shown in FIG. 3A). The wireless transceiver 149 enables the robot 100 to transmit and receive data wirelessly with a communication network (e.g., the communication network 185 described herein with respect to FIG. 4). The robot 100 can use the wireless transceiver 149 to transmit and receive data, for example, receive data representing a map and transmit data representing mapping data collected by the robot 100.
[0057] Exemplary communication network Referring to FIG. 4, an exemplary communication network 185 is illustrated. The nodes of the communication network 185 include the robot 100, the mobile device 188, the autonomous mobile robot 190, the cloud computing system 192, and the smart devices 194a, 194b, 194c. The robot 100, the mobile device 188, the robot 190, and the smart devices 194a, 194b, 194c are network connection devices, that is, 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, 194c can communicate with each other, transmit 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 the cloud computing system 192. Alternatively or in addition, 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, high frequency, light-based, etc.) and network architectures (e.g., mesh network) may be employed in the communication 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 can be linked to a cloud computing system 192 and can be a remote device that enables a user 30 to input to the mobile device 188. The mobile device 188 can include user input elements such as, for example, a touch screen display, buttons, a microphone, a mouse, a keyboard, or one or more of other devices that respond to input provided by the user 30. The mobile device 188 can alternatively or additionally include immersive media (such as virtual reality) that the user 30 interactively operates 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 can input to the mobile device 188 corresponding to a command. In such a case, the mobile device 188 transmits to the cloud computing system 192 a signal 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 an augmented reality image. 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, the nodes of communication network 185 can include additional robots. Alternatively or in addition, the nodes of communication network 185 can include network connection devices. In some implementations, the network connection device can generate information regarding environment 20. The network connection device can include one or more sensors for detecting features of environment 20, such as acoustic sensors, image capture systems, or other sensors that can generate signals from which features can be extracted. The network connection device can include home cameras, smart sensors, and the like.
[0061] In the communication network 185 shown in FIG. 4 and other implementations of the communication network 185, the wireless link may utilize various communication methods, protocols, etc., such as Bluetooth class, Wi-Fi, Bluetooth-low-energy also called BLE, 802.15.4, Worldwide Interoperability for Microwave Access (WiMAX), infrared channels, or satellite bands. In some cases, the wireless link includes any cellular network standard used for communication between mobile devices, including but not limited to standards recognized as 1G, 2G, 3G, or 4G. The network standard, when utilized, is recognized as one or more generations of mobile communication standards by meeting specifications or standards, such as those maintained by the International Telecommunication Union. The 3G standard, when utilized, may correspond to, for example, 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. In cellular network standards, various channel access methods, such as FDMA, TDMA, CDMA, or SDMA, may be used.
[0062] Smart devices 194a, 194b, 194c are electronic devices within an environment that are nodes in communication network 185. In some implementations, smart devices 194a, 194b, 194c include sensors suitable for monitoring the environment, sensors suitable for monitoring the occupants of the environment, and sensors suitable for monitoring the operation of robot 100. These sensors can include, for example, image sensors, occupancy sensors, environmental sensors, and the like. The image sensors of smart devices 194a, 194b, 194c can include sensors that use visible light, infrared cameras, other portions of the electromagnetic spectrum, and the like. Smart devices 194a, 194b, 194c transmit images generated by these image sensors through communication network 185. The occupancy sensors of smart devices 194a, 194b, 194c can include, for example, passive or active transmissive or reflective infrared sensors, time-of-flight or triangulation distance sensors that use light, sonar, or radio frequency, microphones for recognizing occupancy characteristic sounds or sound pressures, airflow sensors, cameras, radio receivers or transceivers for monitoring frequencies and / or WiFi frequencies for a sufficiently strong received signal strength, light sensors capable of detecting ambient light including natural and artificial lighting, and / or one or more of other suitable sensors for detecting the presence of user 30 or another occupant within the environment. The occupancy sensors alternatively or in addition detect the movement of user 30 or the movement of robot 100. If the occupancy sensors are sufficiently sensitive to the movement of robot 100, the occupancy sensors of smart devices 194a, 194b, 194c generate a signal indicative of the movement of robot 100. The environmental sensors of smart devices 194a, 194b, 194c can include electronic thermometers, barometers, humidity or moisture sensors, gas detectors, particulate counters, and the like. Smart devices 194a, 194b, 194c transmit sensor signals from combinations of image sensors, occupancy sensors, environmental sensors, and other sensors present within smart devices 194a, 194b, 194c to cloud computing system 192.These signals serve as input data to a cloud computing system 192 that executes the processes described herein to control or monitor the operation of the robot 100.
[0063] In some implementations, the smart devices 194a, 194b, 194c are electronically controllable. The smart devices 194a, 194b, 194c can include multiple states and may be placed in a specific state in response to commands from another node within the communication network 185, such as the user 30, the robot 100, the robot 190, or another smart device. The smart devices 194a, 194b, 194c can include, for example, an electronically controllable door having an open state and a closed state, a lamp having an on state, an off state, and / or multiple states with varying brightness, an elevator having states corresponding to each level of the environment, or other devices that can be placed in different states.
[0064] Exemplary map As described herein, the map 195 of the environment 20 can be constructed based on data collected by various nodes of the communication network 185. Referring also to FIG. 5, the map 195 can include a plurality of labels 1...N associated with features 1...N within the environment 20. Map creation data 197 is generated, and a portion of the map creation data 197, namely the data 1...N, is respectively associated with the features 1...N within the environment 20. Subsequently, the network-connected devices 1...M can access the map 195 and use the labels 1...N on the map 195 to control the operation of the devices 1...M.
[0065] The environment 20 can include a plurality of features, namely 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 a number of states. A feature can also have a type that can be shared with other features having the same type. In some implementations, a feature can have a type such that the current state of the feature can be a permanent state that generally does not change over a period, such as one month, one year, several years, etc. For example, the type of the first feature may be "floor type" and the state of the first feature may be "carpet". Also, a second feature within the environment may have a type corresponding to "floor type", and the state of this second feature may be "hardwood". In such an implementation, the first feature and the second feature have the same type but different states. In some implementations, a feature can have a type such that the current state of the feature can be a transient state that generally changes over a relatively short period, such as one hour or one day. For example, the type of the first feature may be "door" and the current state of the first feature may be "closed". The first feature is operated to be placed in the "open" state, and such an operation can generally be performed over a relatively short period. A second feature can also have a type corresponding to "door". Features of the same type can have the same possible states. For example, the possible states of the second feature, such as "open" and "closed", can be the same as the states of the first feature. In some implementations, for a feature having the "door" type, there can be three or more states, such as "closed", "closed and locked", "slightly open", "open", etc.
[0066] The map creation data 197 represents data indicating features 1...N within the environment 20. The set of data 1...N of the map creation data 197 may indicate the current state and type of features 1...N within the environment 20. The map creation data 197 can indicate the geometric shape of the environment. For example, the map creation data 197 may indicate the size of a room (e.g., the area or volume of the room), the dimensions of a room (e.g., the width, length, or height of the room), the size of the environment (e.g., the area or volume of the environment), the dimensions of the environment (e.g., the width, length, or height of the environment), the shape of the room, the shape of the environment, the shape of the edge of the room (e.g., the edge defining the boundary between an area traversable within the room and an area not traversable within the room), the shape of the edge of the environment (e.g., the edge defining the boundary between an area traversable within the environment and an area not traversable within the environment), and / or other geometric features of the room or environment. The map creation data 197 can indicate objects within the environment. For example, the map creation data 197 can indicate the placement of the object, the type of the object, the size of the object, the footprint of the object on the floor surface, whether the object is an obstacle to one or more devices within the environment, and / or other features of the object within the environment.
[0067] Map creation data 197 can be generated by different devices within the environment 20. In some implementations, a single autonomous mobile robot generates all of the map creation data 197 using sensors on the robot. In some implementations, two or more autonomous mobile robots generate all of the map creation data 197. In some implementations, two or more smart devices generate all of the map creation data 197. One or more of these smart devices can include an autonomous mobile robot. In some implementations, a user, such as user 30, provides input for generating the map creation data 197. For example, the user can operate a mobile device, such as mobile device 188, to generate the map creation data 197. In some implementations, the user can operate the mobile device to upload an image showing the layout of the environment 20, and that image can be used to generate the map creation 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, the touch screen of a mobile device. In some implementations, the smart devices used to generate at least a portion of the map creation data 197 can include devices within the environment 20 that include sensors. For example, the device can include a mobile device, such as mobile device 188. An image capture device, gyroscope, global positioning system (GPS) sensor, motion sensor, and / or other sensors on the mobile device can be used to generate the map creation data 197. The map creation data 197 can be generated as a user carrying the mobile device 188 moves around within the environment 20. In some implementations, the user operates the mobile device 188 to capture an image of the environment 20, and that image can be used to generate the map creation data 197.
[0068] Map 195 is constructed based on map creation data 197 and includes data indicating features 1...N. In particular, the sets of data 1...N respectively correspond to labels 1...N. In some implementations, the sets of data 1...N correspond to sensor data generated using sensors on devices within environment 20. For example, an autonomous mobile robot (e.g., robot 100 or robot 190) can include a sensor system that generates some of the sets of data 1...N. Alternatively or in addition, a smart device other than an autonomous mobile robot can include a sensor system that generates some of the sets of data 1...N. For example, a smart device can include an image capture device that can capture an image of environment 20. The image can serve as map creation data and thus can constitute some of the sets of data 1...N. In some implementations, one or more of the sets of data 1...N can correspond to data collected by multiple devices within environment 20. For example, one set of data can 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 set of data can be associated with a single label on map 195.
[0069] Map 195 corresponds to data that can be used by various devices within environment 20 and thereby controls the operation of these devices. Map 195 can be used to control the operation of devices within environment 20, such as, for example, an autonomous mobile robot. Map 195 can also be used to provide indicators to a user through a device, such as, for example, a mobile device. As described herein, map 195 can be labeled with labels 1...N, and these labels 1...N can each be used by some or all of the devices within environment 20 to control actions and operations. Map 195 further includes data representing the states of features 1...N associated with labels 1...N.
[0070] As described herein, map 195 can be labeled based on mapping data 197. In this regard, in implementations where multiple devices generate mapping data 197, labels 1...N can be provided based on data from different devices. For example, one label can be presented on map 195 by mapping data collected by one device, while another label can be presented on map 195 by mapping data collected by another device.
[0071] In some implementations, a map 195 having labels 1...N can be stored on one or more servers remote from the devices within the environment 20. In the example shown in FIG. 4, a cloud computing system 192 can host the map 195, and each of the devices within the communication network 185 can access the map 195. Devices connected to the communication network 185 can access the map 195 from the cloud computing system 192 and use the map 195 to control operations. In some implementations, one or more devices connected to the communication network 185 can generate a local map based on the map 195. For example, the robot 100, the robot 190, the mobile device 188, and the smart devices 194a, 194b, 194c can include maps 196a - 196f generated based on the map 195. The maps 196a - 196f can, in some implementations, be copies of the map 195. In some implementations, the maps 196a - 196f can include a portion of the map 195 relevant to the operations of the robot 100, the robot 190, the mobile device 188, and the smart devices 194a, 194b, 194c. For example, each of the maps 196a - 196f can be considered to include a subset of the labels 1...N on the map 195, and each subset corresponds to a set of labels relevant to the particular device using the maps 196a - 196f.
[0072] Map 195 can provide the advantage of a single labeled map that can be used by each of the devices within environment 20. Instead of generating separate maps that may contain conflicting information for the devices within environment 20, rather, the devices can refer to map 195 that is accessible by each of the devices. Each of the devices may use local maps, such as maps 196a - 196f, but the local maps can be updated when map 195 is updated. The labels on maps 196a - 196f match the labels 1...N on map 195. In this regard, the 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 the labels 1...N on each of maps 196a - 196f that include the label being updated. For example, robot 190 can generate mapping data that is used to update the labels 1...N on map 195, and these updates to the labels 1...N on map 195 can be propagated to the labels on map 196a of robot 100. Similarly, in another example, in an implementation where smart devices 194a, 194b, 194c are equipped with sensors for generating mapping data, smart devices 194a, 194b, 194c can generate mapping data that is used to update the labels on map 195. Since the labels on maps 195, 196a - 196f match each other, these updates to the labels on map 195 can be readily propagated, for example, to 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, such as robot 100. The robot can initiate an operation associated with one of labels 1...N. The robot can receive a subset of labels 1...N and initiate the corresponding operations associated with each label within the subset. Since labels 1...N are associated with features 1...N within environment 20, the operations initiated by the robot can respond to the features, for example, avoid the features, follow a specific path regarding the features, use specific navigation operations when the robot is near a feature, and use specific cleaning operations when the robot is near or on a feature. In addition, a portion of the map received by the robot can indicate the state or type of the feature. The robot can thus initiate specific operations in response 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 are mobile devices, such as mobile device 188. The mobile device can receive a subset of labels 1...N and provide feedback to a user based on the subset of labels 1...N. The mobile device can present audible, tactile, or visual indicators that indicate labels 1...N. The indicators presented by the mobile device can indicate the arrangement of the features, the current state of the features, and / or the type of the features.
[0075] In the example shown in FIG. 5, device 1 receives at least a portion of map 195 and data representing label 1 and label 2. Device 1 does not receive data representing label 3...N. Device 2 also receives at least a portion of map 195. Similar to device 1, device 2 also receives data representing label 2. Different from 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] Exemplary process Robot 100, robot 190, mobile device 188, and smart devices 194a, 194b, 194c can be controlled in several ways by the processes described herein. Some operations of these processes can be described as being performed by robot 100, by a user, by a computing device, or by other actors, but in some implementations, these operations may be performed by actors different from those described. For example, operations performed by robot 100 can, 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 can 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 can communicate directly (or indirectly) with each other and with robot 100. And in some implementations, robot 100 can perform operations described as being performed by cloud computing system 192 or mobile device 188 in addition to the operations described as being performed by robot 100. Other variations are possible. Further, the methods, processes, and operations described herein are described as including some operations or sub-operations, but 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] FIG. 6 shows a flowchart of a process 200 that uses a map of an environment, such as environment 20 (shown in FIG. 1A), to control, for example, an autonomous mobile robot and / or to control a mobile device. Process 200 includes operations 202, 204, 206, 208, 210, 212. Operations 202, 204, 206, 208, 210, 212 are shown and described as being performed by robot 100, cloud computing system 192, or mobile device 188, but as described herein, in other implementations, the entity performing these operations may be different.
[0078] In operation 202, map - creation data of the environment is generated. The map - creation data generated in operation 202 includes data associated with features in the environment, such as walls in the environment, the placement of smart devices, 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 state of the autonomous mobile robot. As described herein with respect to FIG. 5, the map - creation data may be generated using sensors on devices in the environment. In the example shown in FIG. 6, robot 100 can generate map - creation data using the sensor system of robot 100, such as the sensor systems described with respect to FIGS. 2, 3A, and 3B.
[0079] In operation 204, the map - making data is transmitted from the robot 100 to the cloud - computing system 192. In operation 206, the map - making data is received by the cloud - computing system 192 from the robot 100. In some implementations, the robot 100 transmits the map - making data during the execution of the cleaning mission. For example, in operation 202, the robot 100 can generate the map - making data and transmit the map - making data to the cloud - computing system 192. In some implementations, the robot 100 transmits the map - making data after the completion of the cleaning mission. For example, the robot 100 can transmit the map - making data when the robot 100 is docked to the docking station 60.
[0080] In operation 208, a map is constructed and a map is generated that includes labels associated with features in the environment. Each label is associated with a part of the map - making data generated by the robot 100 in operation 202. The cloud - computing system 192 can generate these labels. As described herein, each feature can have a corresponding label generated in operation 208.
[0081] After operation 208, operation 210 and / or operation 212 may be executed. In operation 210, robot 100 starts to operate based on features associated with one of the labels. Robot 100 can generate mapping data in operation 202 during the execution of the first cleaning mission and start to operate in operation 210 during the execution of the second cleaning mission. In this regard, the map constructed in operation 208 can represent a persistent map that robot 100 can use over multiple discrete cleaning missions. Robot 100 can collect mapping data in each cleaning mission and update the labels on the map constructed in operation 208 and further provided in operation 208. Robot 100 can update the map using the newly collected mapping data in subsequent cleaning missions.
[0082] In operation 212, mobile device 188 provides the user with an indicator of a feature associated with one of the labels. For example, mobile device 188 can provide a visual representation of the map constructed in operation 208. The visual representation can show the visual layout of the objects in environment 20, for example, the layout of the walls and obstacles in environment 20. The indicator of the feature can indicate the position of the feature and, as described herein, can indicate the current state and / or type of the feature. The map of environment 20 and the visual representation of the indicator of the feature can be updated when additional mapping data is collected.
[0083] An illustrative example of an autonomous mobile robot that controls its operation based on a map and labels presented on the map can be described with reference to FIGS. 1A - 1B, FIGS. 7A - 7D, FIGS. 8A - 8B, FIGS. 9A - 9D, FIGS. 10A - 10B, and FIGS. 11A - 11D. Referring again to FIG. 1A, the robot 100 can generate map - creation data, such as the map - creation data 197 described in connection with FIG. 5, which is used to construct a map, such as the map 195 described in connection with FIG. 5. In some implementations, the environment 20 includes other smart devices that can be used to generate map - creation data for constructing a map. For example, the environment 20 includes an image - capture device 70a and an image - capture device 70b that are operable to capture images of the environment 20. The images of the environment 20 can also be used as map - creation data for constructing a map. In other implementations, additional smart devices within the environment 20, as described herein, can be used to generate map - creation data for constructing a map.
[0084] The robot 100 generates map - creation data when the robot 100 is operated to move around the environment 20 and clean the floor 10 within the environment 20. The robot 100 can generate map - creation data indicating the layout of walls and obstacles within the environment 20. In this regard, these map - creation data can indicate traversable and non - traversable portions of the floor 10. The map - creation data generated by the robot 100 can also indicate other features of the environment 20. In the example shown in FIG. 1A, the environment 20 includes soiled areas 52a, 52b, 52c corresponding to areas on the floor 10. The soiled areas 52a, 52b, 52c can be detected by the robot 100, for example, using the robot 100's dust - detection sensor. The robot 100 can detect the soiled areas 52a, 52b, 52c during the execution of a first cleaning mission. When detecting these soiled areas 52a, 52b, 52c, the robot 100 generates a part of the map - creation data.
[0085] This portion of the map-making data can also show the current state of the dirty regions 52a, 52b, and 52c. The number of possible states of the dirty regions 52a, 52b, and 52c is the same. As visually represented by the indicators 66c, 66d, and 66e, the current states of the dirty regions 52a, 52b, and 52c can be different from each other. The states of the dirty regions 52a, 52b, and 52c correspond to the first level, the second level, and the third level of dirt. The state of the dirty region 52a is a "high dirtiness" state, the state of the dirty region 52b is a "medium dirtiness" state, and the state of the dirty region 52c is a "low dirtiness" state. In other words, the dirty region 52a is dirtier than the dirty region 52b, and the dirty region 52b is dirtier than the dirty region 52c.
[0086] In the first cleaning mission, in response to detecting dust in the dirty regions 52a, 52b, and 52c during the execution of the first cleaning mission, the robot 100 can start a focused cleaning operation in each of the dirty regions 52a, 52b, and 52c. For example, in response to detecting dust in the dirty regions 52a, 52b, and 52c, the robot 100 can start a focused cleaning operation that performs focused cleaning of the dirty regions 52a, 52b, and 52c. In some implementations, based on the amount of dust detected in the dirty regions 52a, 52b, and 52c, or the percentage of dust collected by the robot 100 in the dirty regions 52a, 52b, and 52c, the robot 100 can perform different degrees of cleaning on the dirty regions 52a, 52b, and 52c. The degree of cleaning for the dirty region 52a may be greater than the degree of cleaning for the dirty region 52b and the degree of cleaning for the dirty region 52c.
[0087] The map-making data collected during the execution of the first cleaning mission, particularly the map-making data indicating the dirty areas 52a, 52b, 52c, can be used to control the operation of the robot 100 in the second cleaning mission. During the execution of the second cleaning mission, the robot 100 can start a focused cleaning operation to perform concentrated cleaning on the dirty areas 52a, 52b, 52c based on the detection of dust in the dirty areas 52a, 52b, 52c during the execution of the first cleaning mission. As described herein, the detection of dust in the dirty areas 52a, 52b, 52c during the execution of the first cleaning mission can be used to provide labels on the map that can be used to control the robot 100 in the second cleaning mission. In particular, the robot 100 can receive labels generated using the map-making data collected during the execution of the first cleaning mission. During the execution of the second cleaning mission, the robot 100 can start a concentrated cleaning operation based on the labels on the map. The robot 100 starts a concentrated cleaning operation in response to detecting that the robot 100 is within the dirty area 52a, 52b, or 52c.
[0088] In some implementations, during the execution of the second cleaning mission, the robot 100 starts a focused cleaning operation on the dirty areas 52a, 52b, 52c without first detecting the dust in the dirty areas 52a, 52b, 52c that are dirty during the execution of the second cleaning mission. If the robot 100 detects an amount of dust in the dirty areas 52a, 52b, 52c that is different from the amount of dust in the dirty areas 52a, 52b, 52c during the execution of the first cleaning mission during the execution of the second cleaning mission, the robot 100 can generate mapping data that can be used to update the labels for the dirty areas 52a, 52b, 52c. In some implementations, the map can be updated such that the current state of the dirty areas 52a, 52b, 52c reflects the current level of dirt in the dirty areas 52a, 52b, 52c. In some implementations, based on mapping data from the second cleaning mission or a further cleaning mission, the map can be updated to remove the label for a dirty area, for example, if the dirty area no longer has a level of dirt corresponding to at least a "less dirty" state for the dirty area.
[0089] Figures 7A - 7D show another example of an autonomous cleaning robot that uses a labeled map to control the cleaning operation for a dirty area. Referring to Figure 7A, an autonomous cleaning robot 700 (similar to the robot 100) starts a first cleaning mission to clean the floor surface 702 in the environment 704. In some implementations, when executing the first cleaning mission, the robot 700 moves along a path 705 that includes a plurality of substantially parallel rows, for example, rows extending along axes that form a minimum angle of at most 5 to 10 degrees with each other, so as to cover the floor surface 702. The path followed by the robot 700 can be selected such that the robot 700 passes through at least once a traversable portion of the floor surface 702. During the execution of the first cleaning mission, the robot 700 detects enough dust to trigger focused cleaning operations at the locations 706a - 706f.
[0090] Referring to FIG. 7B, the mapping data collected by the robot 700 can be used to construct a map of the environment 704, and at least a portion of the mapping data generated by the robot 700 can be used to provide a label on the map indicating the dirty area 708. For example, in some implementations, the area corresponding to the dirty area 708 is specified by a user operating a mobile device, and then the area can be labeled to indicate that it corresponds to the dirty area 708. Alternatively, the area corresponding to the dirty area 708 can be automatically labeled. The dirty area 708 can include at least the arrangements 706a to 706f. In some implementations, the width of the dirty area 708 is larger than the maximum widthwise distance between the arrangements 706a to 706f, for example, 5 to 50%, 5% to 40%, 5% to 30%, or 5% to 20% larger, and the length of the dirty area 708 is larger than the maximum lengthwise distance between the arrangements 706a to 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, for example, 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] Next, the label for the dirty area 708 can be used by the robot 700 in a second cleaning mission to initiate a focused cleaning operation that performs a focused cleaning of the dirty area 708. Referring to FIG. 7C, in some implementations, in the second cleaning mission, the robot 700 traverses a path 709 that includes a plurality of substantially parallel rows similar to the path 705 of FIG. 7A. The robot 700 moves along the path 709 to cover the floor surface 702 and clean it. Next, after completing the path 709, to perform a focused cleaning of the dirty area 708, the robot 700 initiates a focused cleaning operation of moving along a path 711 that extends over the dirty area 708 such that the robot 700 cleans the dirty area 708 again. The robot 700 initiates this focused cleaning operation based on the label for the dirty area 708 on the map. Alternatively, referring to FIG. 7D, in the second cleaning mission, based on the label for the dirty area 708, the robot 700 begins an operation of performing a focused cleaning of the dirty area 708 without covering most of the traversable portions of the floor surface 702 within the environment 704 such that the robot 700 does not need to spend time cleaning other portions of the traversable portions of the floor surface 702 within the environment 704. Without moving along a path to cover most of the traversable portions of the floor surface 702 (e.g., path 709), after initiating the second cleaning mission, the robot 700 moves along path 713, moves to the dirty area 708, then covers the dirty area 708 and cleans the dirty area 708.
[0092] Data indicating dust in the dirty regions 502a, 502b, 502c may correspond to a part of the mapping data used to construct the map and its labels. However, in other implementations, data indicating the navigation operation of the robot 100 may correspond to a part of the mapping data. FIGS. 8A - 8B show an example in which an autonomous cleaning robot 800 (similar to the robot 100) moves along the floor surface 802 in the environment 804 and detects the door 806. Referring to FIG. 8A, during the execution of the first cleaning mission, the robot 800 can move from the first room 808, through the corridor 809, through the door 810, and into the second room 812. The door 806 is in an open state during the execution of the first cleaning mission. Referring to FIG. 8B, during the execution of the second cleaning mission, the robot 800 moves from the first room 808 through the corridor 809 and then encounters the door 806. The robot 800 detects the door 806 using, for example, its sensor system, its obstacle detection sensor, or an image capture device, and detects that the door 806 is in a closed state so that the robot 800 cannot move from the corridor 809 to the second room 812.
[0093] The 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 it is indicated that the door 806 is 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 contacting the door 806 and triggering the robot 800's bumper sensor, the robot 800 can move along the door 806 without contacting it when the door 806 is in a closed state. The planned path around 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 robot 800's bumper sensor to detect the state of the door 806 during mission execution. The robot 800 can detect the state of the door and confirm that the door 806 is actually in a closed state, for example, by using a proximity sensor or other sensor in the robot 800's sensor system. In some implementations, when first encountering the door 806 before its state is shown 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 it multiple times. Such an operation can generate mapping data that can be used to indicate on the map that the door 806 is in a closed state. During the execution of a subsequent cleaning mission, for example, in a subsequent cleaning mission, or when near the door 806 during the same cleaning mission, the robot 800 can reduce the attempt to move past the door 806. In particular, the robot 800 can detect that the door 806 is in a closed state, confirm that the state shown on the map is correct, and then proceed to move relative to the door 806 as if the door 806 were an obstacle that cannot be traversed.
[0094] In some implementations, a request may be issued to the user to move and open the door 806 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 a command to move and open the door 806 through a communication network (similar to the communication network 185 described herein). The door 806 is an electronically controllable door, and the robot 800 can transmit data for moving the door 806 from a closed state to an open state.
[0095] Figures 9A - 9D show an example of an autonomous cleaning robot 900 (similar to robot 100) that performs a navigation operation along the floor 902 based on labels for the area 906 within the environment 904. The area 906 can be, for example, a raised portion of the floor 902 (similar to the raised portion 504 described herein) that cannot be easily traversed by the robot 900 when the robot 900 attempts to cross it at a particular navigation parameter, such as a particular approach angle, a particular speed, or a particular acceleration. The robot 900 can enter an error state in some cases when it attempts to cross the raised portion. For example, one of the cliff sensors of the robot 900 can be triggered when the robot 900 crosses the raised portion, thereby triggering an error state and causing the robot 900 to stop the cleaning mission. In a further example, the area 906 can correspond to an area that includes a length of cord or another flexible member that can be caught in a rotatable member of the robot 900 or the wheels of the robot 900. This can trigger an error state of the robot 900.
[0096] Referring to FIG. 9A, during the execution of the first cleaning mission, the robot 900 moves normally across the area 906. The mapping data generated by the robot 900 in the first cleaning mission indicates the navigation parameters of the robot 900 when it normally crosses the area 906. The map constructed from the mapping data includes information indicating the label associated with the area 906 and further a first set of navigation parameters. These navigation parameters can include the approach angle, speed, or acceleration with respect to the area 906. The first set of navigation parameters is associated with the success of the attempt to cross the area 906.
[0097] Referring to FIG. 9B, in the second cleaning mission, the robot 900 attempts to cross the area 906 but fails. The mapping data generated by the robot 900 in the second cleaning mission indicates the navigation parameters of the robot 900 when it fails to cross the area 906. The map is updated to associate the label with information indicating a second set of navigation parameters. The second set of navigation parameters is associated with an error state. In this regard, based on the label and the second set of navigation parameters, the robot 900 can avoid the error state by avoiding the second set of navigation parameters in subsequent cleaning missions.
[0098] Referring to FIG. 9C, in the third cleaning mission, the robot 900 attempts to cross the area 906 and fails. The mapping data generated by the robot 900 in the third cleaning mission indicates the navigation parameters of the robot 900 when it fails to cross the area 906. The map is updated to associate a label with information indicating a third set of navigation parameters. The third set of navigation parameters is associated with an error state. In this regard, based on the label and the third set of navigation parameters, the robot 900 can avoid the error state by avoiding the third set of navigation parameters in subsequent cleaning missions.
[0099] Referring to FIG. 9D, in the fourth cleaning mission, the robot 900 successfully crosses the area 906. The robot 900 can select a fourth set of navigation parameters based on, for example, a label and one or more of the first, second, or third sets of navigation parameters. The robot 900 can avoid the second path 908 associated with the second set of navigation parameters and the 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 can 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, a range of values for the navigation parameters that are likely to result in the robot 900 successfully crossing the area 906 can be calculated. Alternatively, the fourth set of navigation parameters may be the same as the first set of navigation parameters that successfully crossed the area 906 during the execution of the first cleaning mission.
[0100] Figures 10A - 10B show an example of an autonomous cleaning robot 1000 (similar to robot 100) that performs a navigation operation along the floor surface 1002 based on labels for the area 1006 within the environment 1004. Referring to Figure 10A, during the execution of the first cleaning mission, the robot 1000 performing the first navigation operation moves along the path 1008 on the floor surface 1002. The robot 1000 starts a covering operation in which it attempts to move on a plurality of rows that are substantially parallel to the floor surface 1002 in order to cover the floor surface 1002. The robot 1000 encounters obstacles 1010a - 1010f near the area 1006 and, for example, uses its sensor system to detect the obstacles and responds by avoiding the obstacles 1010a - 1010f. The robot 1000 can clean around the obstacles by using sensors to trace the edges of the obstacles. In this regard, the path 1008 of the robot 1000 includes multiple instances where the robot 1000 starts an obstacle avoidance operation to avoid the obstacles 1010a - 1010f and starts an obstacle following operation to clean around the obstacles 1010a - 1010f. In addition, the robot 1000 enters and exits the area 1006 through multiple access paths 1012a - 1012f. In the example shown in Figure 10A, the area 1006 includes six access paths 1012a - 1012f, and the robot 1000 enters and exits the area 1006 multiple times through at least some of these points.
[0101] The label associated with area 1006 can be presented on a map constructed from the mapping data generated by robot 1000. The label can indicate that area 1006 is a clutter area that results in a plurality of dense obstacles forming several narrow access routes. For example, the plurality of access routes 1012a - 1012f can have a width between one and two widths of robot 1000. The clutter area can be partially defined by the distance between obstacles. For example, the length of the clutter area can be greater than the distance between two obstacles that are furthest apart along a first dimension, and the width of the clutter area can be greater than the distance between two obstacles that are furthest apart along a second dimension. The first dimension can be perpendicular to the first dimension. In some implementations, the clutter area can cover an area having a length of 1 - 5 meters, such as 1 - 2 meters, 2 - 3 meters, 3 - 4 meters, 4 - 5 meters, about 2 meters, about 3 meters, about 4 meters, etc., and a width of 1 - 5 meters, such as 1 - 2 meters, 2 - 3 meters, 3 - 4 meters, 4 - 5 meters, about 2 meters, about 3 meters, about 4 meters, etc.
[0102] Referring to FIG. 10B, during the execution of the second cleaning mission, the robot 1000 can plan a path 1014 that can clean the area 1006 more quickly. Using the sensor system of the robot 1000 to detect obstacles 1010a - 1010f (shown in FIG. 10A), and then in addition to avoiding the obstacles 1010a - 1010f based on the detection of the obstacles 1010a - 1010f, the robot 1000 can start the cleaning operation based on the previous identification of the cluttered locations. The robot 1000 can plan the path 1014 relying on the map generated during the execution of the first cleaning mission, rather than using only the obstacle detection sensors to start the operation in response to the detection of the obstacles 1010a - 1010f. A part of the path 1014 is more efficient than the path 1008. In the second navigation operation, which is at least partially selected based on the first navigation operation, the robot 1000 moves along the path 1014 during the execution of the second cleaning mission. In this second navigation operation, the robot 1000 enters the area 1006 fewer times than the number of times the robot entered the area during the first navigation operation. In particular, the number of entry points to the area 1006 for the path 1014 is less than the number of entry points to the area 1006 for the path 1008. In addition, the path 1014 can include a plurality of substantially parallel rows that are also substantially parallel to the length of the area 1006. In contrast, the path 1008 includes a plurality of substantially parallel rows that are perpendicular to the area 1006. Instead of starting the obstacle avoidance operation and the obstacle following operation multiple times, the robot 1000 can start these operations fewer times so that it can clean the area 1006 and even the area around the obstacles in one part of the cleaning mission, rather than in multiple different parts of the cleaning mission.
[0103] In some implementations, one or more of the obstacles 1010a - 1010f can be removed from the environment 1004. When an obstacle is removed, the area 1006 can be resized, thereby adjusting the label associated with the area 1006. In some implementations, when all of the obstacles 1010a - 1010f are removed, the area 1006 no longer exists and the label can be deleted. The mapping data collected by the robot 1000 in a further cleaning mission can indicate the removal of an obstacle or the removal of all obstacles.
[0104] Figures 11A - 11D show an example of a mobile robot 1100 (shown in Figure 11A) that generates mapping data that can be used by a mobile robot 1101 (shown in Figure 11C) that navigates around a floor surface 1102 within 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 a mobile robot having a drive system and a sensor system similar to the drive system and the sensor system of the robot 100.
[0105] Referring to FIG. 11A, in the first mission, the robot 1100 moves around the floor surface 1102 and detects the 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 for 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 obstacles. In some implementations, the obstacle detection sensor of the robot 1100 is triggered by features in the environment near the object 1106. For example, the object 1106 may be close to features in the environment that trigger the obstacle detection sensor of the robot 1100, and the robot 1100 can associate the visual images captured using the image capture device with the triggering of the obstacle detection sensor.
[0106] The mapping data generated by the robot 1100 can include visual images captured using an image capture device and obstacle detection results captured by an obstacle detection sensor. A label indicating that the object 1106 is an obstacle may be presented on the map, and the label can be further associated with the visual image of the object 1106.
[0107] Referring to FIG. 11C, in the second mission, the robot 1101 moves around on 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 may match the visual image associated with the label for the object 1106. Based on this match, the robot 1101 can determine whether the object 1106 is an obstacle or associate the detection of the object 1106 by the image capture device with an obstacle avoidance operation. 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 bumper sensor, the robot 1101 can avoid the object 1106 without contacting the obstacle and triggering the bumper sensor. In some implementations, the robot 1101 can avoid triggering the bumper sensor and use a proximity sensor to follow along an obstacle. By relying on the map generated from the mapping data collected by the robot 1100, the robot 1101 can avoid some sensor observations associated with the object 1106, particularly obstacle detection sensor observations.
[0108] In some implementations, the timing of the second mission may overlap with the timing of the first mission. The robot 1101 may be considered to be operating within the environment at the same time as the robot 1101 is operating within the environment.
[0109] Additional alternative implementations Many implementations, including alternative implementations, have been described. Nevertheless, it will be understood that further alternative implementations are possible and various modifications can be made.
[0110] Referring to FIG. 1B, indicators 66a - 66f are described as presenting an indication of the state, type, and / or arrangement of features within the environment 20. These indicators 66a - 66f can be overlaid on a visual representation 40 of a map of the environment 20. The user device 31 can, in further implementations, present other indicators. For example, the user device 31 can 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, discharging, off, on, etc.). The user device 31 can also present an indicator of the path of the robot 100, the predicted path of the robot 100, or a proposed path for the robot 100. In some implementations, the user device 31 can present a list of labels provided on the map. The list can include the current state and type of the features associated with the labels.
[0111] Other labels can also be visually represented by the user device. For example, the maps of the environments described with respect to FIGS. 7A - 7D, 8A - 8B, 9A - 9D, 10A - 10B, and 11A - 11D can be visually represented in a manner similar to the visual representation 40 described with respect to FIG. 1B. Further, the labels described with respect to FIGS. 7A - 7D, 8A - 8B, 9A - 9D, 10A - 10B, and 11A - 11D can also be visually represented. For example, the arrangements 706a - 706f can be visually represented by indicators associated with the labels and overlaid on a visual representation of a map of the environment. The soiled area 708, the door 806, the area 906, the obstacles 1010a - 1010f, the area 1006, and the object 1106 can also be visually represented by indicators.
[0112] The state of the soiled area is described as being in a state of "high soiling degree", "medium soiling degree", or "low soiling degree". Other implementation forms are also possible. For example, in some implementation forms, the possible states of the soiled area can include states indicating different frequencies of soiling. For example, the soiled area can have a state of "soiled daily" indicating that the soiled area gets soiled daily. For a soiled area having this state, based on the label of the soiled area and the state of "soiled daily", it is also possible for the autonomous cleaning robot to start a concentrated cleaning operation to perform concentrated cleaning of the soiled area at least once a day. The soiled area may have a state of "soiled weekly" indicating that the soiled area gets soiled once a week. For a soiled area having this state, the autonomous cleaning robot may start a concentrated cleaning operation to perform concentrated cleaning of the soiled area at least once a week.
[0113] Alternatively, or in addition, the possible states of the soiled area can include states indicating the periodicity of soiling. For example, the soiled area can have a state of soiling specific to a month, where the soiled area becomes soiled only during a specific month. For a soiled area having such a state, based on the label of the soiled area and the soiling state specific to the month, the autonomous cleaning robot can start a concentrated cleaning operation to perform concentrated cleaning of the soiled area only in the designated month. The soiled area can have a seasonal soiling state where the soiled area becomes soiled only during a specific season, such as spring, summer, autumn, or winter. For a soiled area having such a state, based on the label of the soiled area and the seasonal soiling state, the autonomous cleaning robot can start a concentrated cleaning operation to perform concentrated cleaning of the soiled area only in the designated season.
[0114] The centralized cleaning operation can have different implementation forms. In some implementation forms, the centralized cleaning operation may involve increasing the vacuum power of the robot. For example, the vacuum power of the robot can be set to two or more different levels. In some implementation forms, the centralized cleaning operation may involve reducing the speed of the robot so that the robot spends more time in a specific area. In some implementation forms, the centralized cleaning operation may involve passing through a specific area multiple times to make the area cleaner. In some implementation forms, the centralized cleaning operation may involve a specific cleaning pattern, such as a series of substantially parallel rows covering a specific area to be cleaned, or a spiral pattern covering a specific area to be cleaned.
[0115] The labels described in this specification can have different implementation forms. In some implementation forms, the labels can be associated with different floor types in the environment. For example, the first label can be associated with a part of the floor surface including a carpet floor type, and the second label can be associated with a part of the floor surface including a tile floor type. The first autonomous cleaning robot can start navigation operations based on the first and second labels where the first robot moves and cleans on both carpet and tile. The first robot can be a vacuum robot suitable for cleaning both types of floors. The second autonomous cleaning robot can start navigation operations based on the first and second labels where the second robot moves and cleans only on tile. The second robot may be a wet cleaning robot not suitable for cleaning carpet.
[0116] In some implementations, some objects in the environment can be correlated with some labels such that labels can be provided in response to the mapping data indicating the objects. For example, as described herein, a label for a dirty area can be provided on the map in response to mapping data indicating the detection of garbage. In some implementations, an object can have a type associated with the dirty area. For example, in response to the detection of an object by an autonomous mobile robot, an image capture device on the robot, or an image capture device in the environment, a label for the dirty area can be presented on the map. When a new object of the same type is moved into the environment, a new label for the dirty area can be presented on the map. Similarly, when the robot is moved to a new environment and operated in the new environment, the map created for the new environment can automatically input labels for dirty areas based on the detection of objects of the same type. For example, the object can be a table, and in response to the detection of other tables in the environment, labels associated with the dirty area can be provided on the map. In another example, the object can be a window, and in response to the detection of other windows in the environment, labels associated with the dirty area can be provided on the map.
[0117] The type of object can be associated with an area that is automatically soiled through detection by a device in the environment. For example, a cloud computing system can determine that an area detected using a dirt detection sensor correlates with the detection of a table in the environment by an image capture device in the environment. Based on this determination, cloud computing can provide a label associated with the soiled area in response to receiving data indicating a new table added to the environment. Alternatively, or in addition, the type of object can be manually associated with the soiled area. For example, a user can provide a command to correlate a specific object, such as a table, with the soiled area, whereby a label for the soiled area is provided on a map when the table is detected. Alternatively, or in addition, the user can provide a command to perform a focused cleaning within an area on the floor of the environment. In some implementations, the cloud computing system can determine that an area is covered by, or corresponds to an area near, a specific type of object in the environment. The cloud computing system can accordingly correlate the user-selected area for focused cleaning with the type of object, whereby a label associated with the focused cleaning operation is created when an object of this type is detected.
[0118] In some implementations, user confirmation is required before a label is provided. For example, a robot or mobile device presents a request for user confirmation, and the user provides the request through user input on the robot or mobile device, such as a touch screen, keyboard, button, or other suitable user input. In some implementations, the label is automatically provided, and the user can operate the robot or mobile device to remove the label.
[0119] In the example described with respect to FIGS. 8A-8B, the robot 800 can transmit data for causing the user to issue a request to change the state of the door. In other implementations, the autonomous cleaning robot can transmit data for causing the 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 change the orientation of an obstacle, a request to rearrange the rug in an area, a request to spread a part of the rug 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 can be used. For example, the robot 100 is a vacuum cleaning robot. In some implementations, an autonomous wet cleaning robot can be used. The robot can be provided with pads attachable to the bottom of the robot and can be used for the robot to perform a cleaning mission of scrubbing the floor. The robot can be provided with a system similar to that described with respect to the robot 100. In some implementations, a patrol robot provided with an image capture device can be used. The patrol robot can be provided with a mechanism for relatively moving the image capture device with respect to the main body of the patrol robot. The robot 100 is described as a circular robot, but in other implementations, the robot 100 can be a robot including a substantially rectangular front part and a substantially semi-circular rear part. In some implementations, the robot 100 has a substantially rectangular outer periphery.
[0121] Robot 100 and several other robots described herein are described as performing a cleaning mission. In some implementations, robot 100 or other autonomous mobile robots within environment 20 perform a different type of mission. For example, the robot can perform a vacuum mission that operates the robot's vacuum system to suck up debris on the floor of the environment. The robot can perform a patrol mission where the robot moves across the floor and captures an image of the environment that can be presented to the user through a remote mobile device.
[0122] Several implementations are described herein with respect to multiple cleaning missions. In a first cleaning mission, an autonomous cleaning robot generates mapping data indicative of features, and then labels are provided based on the mapping data. For example, FIGS. 7A-7D are described with respect to a first cleaning mission and a second cleaning mission. In some implementations, robot 700 can perform the focused cleaning operations described with respect to FIGS. 7C and 7D in the same cleaning mission in which robot 700 detects a dirty area 708 as described with respect to FIGS. 7A and 7B. For example, robot 700 can detect sufficient debris at placements 706a-706f, and labels for the dirty area 708 can be presented during the performance of a single cleaning mission. Robot 700 can move around over the dirty area 708 again after first detecting debris at placements 706a-706f and after labels for the dirty area 708 are presented during the performance of this single cleaning mission. Then, robot 700 can initiate the focused cleaning operations described with respect to FIG. 7C. In some implementations, after covering most of the traversable portions of floor 702, robot 700 can move around again over the dirty area 708, particularly in the same cleaning mission in which robot 700 first detected debris at placements 706a-706f. In this regard, the focused cleaning operations described with respect to FIG. 7D can be performed during the performance of the same cleaning mission in which placements 706a-706f are detected and used to present labels for the dirty area 708. Similarly, referring back to FIG. 1A, labels for the dirty areas 52a, 52b, 52c can be presented during the performance of the same cleaning mission in which the dirty areas 52a, 52b, 52c are first detected. Robot 100 can return to these areas during the performance of the same cleaning mission and initiate focused cleaning operations based on the labels for these dirty areas 52a, 52b, 52c.
[0123] Referring to FIGS. 8A-8B, robot 800 encounters door 806 during a second cleaning mission. In some implementations, robot 800 may encounter door 806 during a first cleaning mission. For example, robot 800 can encounter door 806 in the same cleaning mission in which robot 800 moves from a first room 808 to a second room 812 without encountering door 806. Robot 800 can encounter door 806 on a second pass through environment 804. Door 806 can move from an open state to a closed state during the execution of the first cleaning mission. As a result, the state of door 806 labeled on the map changes during the execution of the first cleaning mission, and robot 800 can appropriately adjust its operation during the first cleaning mission.
[0124] FIGS. 9A-9D are described with respect to first through fourth cleaning missions. In some implementations, the operations described with respect to FIGS. 9A-9D can occur during the execution of three or fewer cleaning missions. For example, robot 900 can attempt to cross or can cross region 906 multiple times during the execution of a single cleaning mission. Robot 900 can perform the operations described with respect to FIG. 9D in the same cleaning mission in which robot 900 first successfully crosses region 906 (as described with respect to FIG. 9A) and then fails to cross region 906 (as described with respect to FIGS. 9B and 9C).
[0125] Referring to FIGS. 10A-10B, robot 1000 can perform the operations described with respect to FIG. 10B in the same cleaning mission in which robot 1000 performs the first navigation operation described with respect to FIG. 10A. For example, robot 1000 can move around within environment 1004 a second time during a first cleaning mission and move through region 1006 in the manner described with respect to FIG. 10B to more quickly clean region 1006.
[0126] In some implementations, the map creation data generated by a first robot, e.g., robot 100, robot 700, robot 800, robot 900, robot 1000, or robot 1100, is generated to construct a map and label the map, and then a second autonomous mobile robot can access the map and start an operation as described herein. The first robot can generate map creation data in a first mission, and the second robot can access a map generated from the map creation data used during the execution of a second mission to control the actions of the second robot. The first mission and the second mission 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 an indicator overlaid 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 an indicator similar to those described herein can be presented overlaid on the image of the environment.
[0128] The robots and techniques described herein, or portions thereof, can be stored on one or more non-transitory machine-readable storage media and controlled by a computer program product comprising instructions executable on one or more processing devices to control (e.g., adjust) the operations described herein. The robots described herein, or portions thereof, can be implemented as all or part of an apparatus or electronic system that can include one or more processing devices and memory for storing executable instructions for implementing various operations.
[0129] Operations associated with performing all or part of the robot operations and controls described herein may be performed by one or more programmable processors executing 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 by a computer program for performing functions such as transmitting signals, calculating estimates, or interpreting signals. The computer program may be written in any form of programming language, including a compiler-type language or an interpreter-type language, and may be deployed in any form, including a stand-alone program or a module, component, subroutine, or other unit suitable for use in a computing environment.
[0130] The controller and mobile device described in this specification can include one or more processors. Processors suitable for the execution of a computer program include, for example, any one or more of general purpose microprocessors, special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor receives instructions and data from a read-only memory area or a random access memory area or both. Elements of a computer include one or more processors for executing instructions and one or more storage area devices for storing instructions and data. Generally, a computer also includes one or more machine-readable storage media, such as a mass PCB for storing data, for example, magnetic disks, magneto-optical disks, or optical disks, and is operatively coupled to receive data from, transfer data to, or both, these. Machine-readable storage media suitable for embodying the instructions and data of a computer program include, for example, semiconductor storage area devices, such as EPROM, EEPROM, and flash storage area devices, magnetic disks, such as internal hard disks or removable disks, magneto-optical disks, and all forms of non-volatile storage area including CD-ROM and DVD-ROM disks.
[0131] The robot control and operation techniques described in this specification may also be applicable to controlling other mobile robots other than cleaning robots. For example, a lawn mowing robot or a space monitoring robot can be trained to perform operations in a specific part of a lawn or space as described in this specification.
[0132] Elements of different implementations described in this specification can also be combined to form other implementations not specifically described above. Elements may be removed from the structures described in this specification without adversely affecting their operation. Further, various separate elements can be combined into one or more individual elements to perform the functions described in this specification.
[0133] Numerous implementation forms have been described above. However, it will be understood that various modifications can be made. Therefore, other implementation forms fall within the scope of the claims.
Explanation of Reference Numerals
[0134] 10 Floor surface 20 Environment 30 User 31 User computing device 40 Visual representation 50a, 50b Door 52a, 52b, 52c Soiled area 54 Raised portion 60 Docking station 62a, 62b Indicator 64a, 64b, 64c Indicator 65 Indicator 66a~66f Indicator 70a, 70b Image capture device 100 Autonomous cleaning robot 105 Garbage 106 Electric circuit 108 Housing infrastructure 109 Controller 110 Drive system 112 Driving wheel 113 Bottom 114 Motor 115 Passive caster wheel 116 Cleaning assembly 117 Cleaning inlet 118 Rotatable member 119 Vacuum system 120 Motor 121 Rear portion 122 Front portion 124 Dustbin 126 Brush 128 Motor 134 Cliff sensor Proximity sensors 136a, 136b, 136c Bumper 138 Bump sensors 139a, 139b Image capture device 140 Top 142 Obstacle tracking sensor 141 Memory storage element 144 Suction path 145 Parallel horizontal axes 146, 148 Garbage detection sensor 147 Wireless transceiver 149 Side surfaces 150, 152 Front surface 154 Corner surfaces 156, 158 Center 162 Optical detector 180 Optical emitters 182, 184 Communication network 185 Mobile device 188 Autonomous mobile robot 190 Cloud computing system 192 Smart devices 194a, 194b, 194c Map 195 Maps 196a - 196f Map creation data 197 Process 200 Operations 202, 204, 206, 208, 210, 212 Autonomous cleaning robot 700 Floor surface 702 Environment 704 Route 705 Arrangements 706a - 706f Soiled area 708 Route 709 Route 713 Autonomous cleaning robot 800 Floor surface 802 Environment 804 Door 806 First room 808 Corridor 809 810 Door 812 Second Room 900 Autonomous Cleaning Robot 902 Floor Surface 904 Environment 906 Area 907 First Route 908 Second Route 909 Third Route 1000 Autonomous Cleaning Robot 1002 Floor Surface 1004 Environment 1006 Area 1008 Route 1010a - 1010f Obstacles 1012a - 1012f Access Routes 1014 Route 1100 Autonomous Mobile Robot 1101 Autonomous Mobile Robot 1102 Floor Surface 1104 Environment 1106 Object
Claims
1. During a first attempt, navigating an autonomous cleaning robot in an area of a predetermined environment using one or more first navigation parameters, wherein the area is at a higher position compared to adjacent areas; Storing one or more of the first navigation parameters; During a second attempt, navigating the autonomous cleaning robot in the area using one or more second navigation parameters, wherein one or more of the second navigation parameters are based on one or more of the first navigation parameters; comprising; One or more of the first navigation parameters include at least one of an approach angle, speed, acceleration of the autonomous cleaning robot with respect to the area, or a path through the area. A method characterized by this.
2. Identifying that navigation in the area during the first attempt was successful; Identifying one or more of the second navigation parameters based on one or more of the first navigation parameters and based on the identification that navigation in the area during the first attempt was successful; The method according to claim 1, characterized by including this.
3. During a third attempt prior to the second attempt, navigating the autonomous cleaning robot in the area using one or more third navigation parameters; Identifying that navigation in the area during the third attempt was successful; comprising; The step of identifying one or more of the second navigation parameters is Based on identifying that navigation in the region during the third attempt has failed, selecting one or more of the second navigation parameters to be different from one or more of the third navigation parameters, the method according to claim 2. **Claim 4** The step of identifying that navigation in the region during the third attempt has failed includes the step of identifying an error state during navigation in the region during the third attempt, the method according to claim 3. **Claim 5** The step of identifying the error state is based on data from a cliff sensor of the autonomous cleaning robot, the method according to claim 4. **Claim 6** One or more of the third navigation parameters include one or more of the first navigation parameters, the method according to claim 3. **Claim 7** Identifying a range of values of navigation parameters predicted to succeed in navigation in the region, based on one or more of the first navigation parameters, and Identifying one or more of the second navigation parameters based on the range of values of the navigation parameters, and The method according to claim 1, comprising. **Claim 8** Constructing a map of the environment based on mapping data generated by the autonomous cleaning robot during a first attempt, The step of constructing the map, Labels associated with the region, and Data representing one or more of the first navigation parameters associated with the label, and The method according to claim 1, comprising providing. **Claim 9** The method according to claim 8, comprising the step of causing a remote computing device to display a visual representation of the environment based on the map and a visual indicator of the label.
10. The area includes a threshold between a first room and a second room, The method according to claim 1, wherein the step of navigating the autonomous cleaning robot in the area includes the step of navigating the autonomous cleaning robot from the first room to the second room.
11. The method according to claim 1, wherein the first attempt occurs during a first cleaning mission and the second attempt occurs during a second cleaning mission.
12. An autonomous cleaning robot, A drive system for supporting the autonomous cleaning robot on a floor surface within an environment, the drive system being configured to allow the autonomous cleaning robot to move around on the floor surface, a drive system; A cleaning assembly for cleaning the floor surface when the autonomous cleaning robot moves around on the floor surface; A sensor system; A controller operably connected to the drive system, the cleaning assembly, and the sensor system, configured to execute instructions for performing operations, the operations including: Using the drive system to navigate the autonomous cleaning robot in an area of the environment using one or more first navigation parameters during a first attempt, the area being at a higher position compared to an adjacent area; Storing one or more of the first navigation parameters; During the second attempt, navigating the autonomous cleaning robot through the area using one or more second navigation parameters, wherein the one or more second navigation parameters are based on the one or more first navigation parameters, steps and, including a controller, equipped with, At least one of the one or more first navigation parameters includes an approach angle, speed, acceleration of the autonomous cleaning robot with respect to the area, or a path through the area. An autonomous cleaning robot.
13. The operation is, Identifying that the navigation in the area during the first attempt was successful, Based on the one or more first navigation parameters and based on the identification that the navigation in the area during the first attempt was successful, identifying the one or more second navigation parameters, The autonomous cleaning robot according to claim 12, characterized by including.
14. The operation is, Using the drive system to navigate the autonomous cleaning robot in the area using one or more third navigation parameters during a third attempt prior to the second attempt, Identifying that the navigation in the area during the third attempt was successful, including, The step of identifying one or more of the second navigation parameters is, Based on the identification that the navigation in the area during the third attempt failed, selecting the one or more second navigation parameters to be different from the one or more third navigation parameters. The autonomous cleaning robot according to claim 13, characterized by including.
15. The step of identifying that navigation in the region during the third attempt has failed includes the step of identifying an error state during navigation in the region during the third attempt, the autonomous cleaning robot according to claim 14.
16. The one or more second navigation parameters include one or more of the first navigation parameters, the autonomous cleaning robot according to claim 13.
17. The operation is identifying a range of values of navigation parameters predicted to successfully navigate in the region, based on one or more of the first navigation parameters; identifying one or more of the second navigation parameters based on the range of values of the navigation parameters; and the autonomous cleaning robot according to claim 12.
18. constructing a map of the environment based on mapping data generated by the sensor system during a first attempt, the step of constructing the map is a label associated with the region, data representing one or more of the first navigation parameters associated with the label, and the autonomous cleaning robot according to claim 12.
19. The operation is displaying on a remote computing device a visual representation of the environment based on the map and a visual indicator of the label, the autonomous cleaning robot according to claim 18.
Citation Information
Patent Citations
Automatic guided vehicle control device
JP1994030807U
Mobile robot
JP2007048081A
Systems and methods for configurable operation of a robot based on area classification
WO2018053100A1
Method for controlling an autonomous, mobile robot
WO2018158248A2
Mobile device, object detection method, and program
WO2018193653A1