Control of autonomous mobile robot

By presenting an environmental map on a mobile device and defining the behavior control area using identifiers, the robot confirms its position based on the sensor system and updates it automatically. This solves the problems of intuitiveness and accuracy in the selection and updating of the behavior control area of ​​autonomous mobile robots, and enables efficient management of multiple robots performing different tasks in the environment.

CN121242433APending Publication Date: 2026-01-02IROBOT CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511237907.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2019-05-29
Filing Date
2020-04-01
Publication Date
2026-01-02

AI Technical Summary

Technical Problem

The selection, confirmation, and updating of behavior control zones in the environment for existing autonomous mobile robots are not intuitive, accurate, or efficient enough, making it difficult to meet users' needs for different robots to perform different tasks in the environment.

Method used

By presenting an environmental map on a mobile device and using symbols, users can intuitively define behavior control areas. The robot confirms its position based on signals from the sensor system and automatically updates the control area, supporting multiple robots to perform specific behaviors in the environment.

Benefits of technology

It improves the intuitiveness, accuracy, and efficiency of selecting, confirming, and updating behavior control zones, supports multiple robot teams to perform different tasks in the environment, and enhances users' management capabilities of robots and the customization of environmental cleaning.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121242433A_ABST
    Figure CN121242433A_ABST
Patent Text Reader

Abstract

An autonomous mobile robot includes a drive system supporting the robot above a surface, a sensor system configured to generate a signal indicative of a position of the robot on the surface, and a controller operably connected to the drive system and the sensor system. The drive system is operable to navigate the robot around the surface. The controller is configured to execute the instructions to operate, including establishing a behavioral control zone on the surface, in response to establishing the behavioral control zone on the surface, controlling the drive system to manipulate the robot to a location of the behavioral control zone on the surface, and manipulating the robot around the surface using the drive system, and initiate a behavior in response to determining that the robot approaches the behavior control region based on the signal indicative of the position of the robot.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the application for patent with application number 202080030175.0, application date of 2020-04-01, and title of “Control of an autonomous mobile robot”. TECHNICAL FIELD

[0002] The present invention relates to control of an autonomous mobile robot. BACKGROUND

[0003] Autonomous mobile robots include autonomous cleaning robots that autonomously perform cleaning tasks within an environment (e.g., a home). Many kinds of cleaning robots are autonomous to some extent, and work in different ways. A cleaning robot can include a controller configured to autonomously navigate the robot in the environment so that the robot can ingest debris as it moves. SUMMARY

[0004] A human user can create a cleaning zone for an autonomous mobile cleaning robot, for example, by using a mobile device. The mobile device can present a map of the environment to the human user, and the human user can indicate a cleaning zone, for example, by interacting with a touchscreen of the mobile device. The cleaning zone can define an area in which the robot is to perform additional cleaning or less cleaning. For example, a human user can create a no-go zone to prevent the autonomous mobile cleaning robot from cleaning certain areas in the environment. In another example, a human user can create a priority cleaning zone in which the autonomous mobile cleaning robot can perform additional cleaning in the environment (e.g., clean for a longer duration, higher vacuum power, multiple cleanings with more cleaning pads, or with more water). After the cleaning zone is established, the robot can confirm the cleaning zone, for example, by moving to the cleaning zone.

[0005] Advantages of the foregoing and other embodiments described herein can include, but are not limited to, those described below and elsewhere herein. For example, embodiments described herein can improve ease, accuracy, customizability, and adaptability of selection of behavior control zones for controlling behavior of an autonomous mobile robot.

[0006] The implementations described herein can improve the ease with which a user selects a behavior control zone for an autonomous mobile robot. For example, a mobile application can present an environmental representation (e.g., a 2D map) of the autonomous mobile robot's environment, and the user can interact with the representation to define a behavior control zone. The representation can provide a reference for the user as the user defines the behavior control zone. In addition, a representation of an environmental feature (e.g., an icon representing a table) can be overlaid on the representation of the environment to provide further reference. In some implementations, the user can simply define a behavior control zone by selecting one of the representations, the defined behavior control zone corresponding to the object or feature in the environment corresponding to the selected representation. This selection process is intuitive to the user and allows the user to easily discern where the selected behavior control zone is in the environment.

[0007] The implementations described herein can further improve the accuracy with which a behavior control zone is arranged. The reference representations presented on the mobile application can allow a user to select a behavior control zone that more accurately matches the user's intended arrangement of the behavior control zone. For example, a user can select a behavior control zone by simply selecting a representation of an environmental feature of the autonomous mobile robot, rather than having to interact roughly with the mobile application to establish the boundaries of the behavior control zone.

[0008] Confirmation of the behavior control zone can further ensure that the selected behavior control zone matches the user's intended behavior control zone. The robot can be physically moved to the behavior control zone so that the user can confirm that the robot's position matches the position of the user's intended behavior control zone. In some implementations, the user can further provide confirmation that the robot's position after being moved to the position of the behavior control zone matches the intended position of the user's behavior control zone. Such a confirmation step can improve the accuracy with which a behavior control zone is arranged.

[0009] In implementations in which multiple autonomous mobile robots move in an environment, a behavior control zone can be established in a manner that differentially controls each robot. For example, a behavior control zone can be used to cause one robot but not another robot to avoid the behavior control zone. Such differential control of the robots can improve the user's ability to manage a team of robots in which each robot performs a different function. For example, one robot can be a vacuum cleaning robot and another robot can be a mopping robot. In such implementations, the user can benefit from being able to establish a behavior control zone that, for example, allows the vacuum cleaning robot to enter a particular floor area, such as a carpet, but does not allow the mopping robot to enter the particular floor area.

[0010] The implementations described herein can further improve the efficiency of selecting and updating behavior control zones. In some implementations, a user defines a behavior control zone in association with an environmental feature. In some cases, the location of the environmental feature can move. Instead of the user having to manually update the behavior control zone, the behavior control zone can be automatically updated in response to detecting the movement of the environmental feature, e.g., by the robot as it moves across the floor surface. This automatic updating of the behavior control zone reduces the need for user input to update the behavior control zone.

[0011] The implementations described herein can further improve the customizability of the operation of an autonomous mobile robot in different environments. A user can select a behavior control zone so that the autonomous mobile robot performs a particular behavior in an area of the environment that particularly requires the attention of the robot. In the example where the robot is a cleaning robot, a behavior control zone can be selected to cause the robot to perform an intensive cleaning operation in an area of the environment that tends to get dirtier relative to other areas of the environment.

[0012] In one aspect, an autonomous mobile robot includes a drive system to support the robot above a surface, a sensor system configured to generate a signal indicative of a position of the robot on the surface, and a controller operably connected to the drive system and the sensor system. The drive system is operable to navigate the robot on the surface. The controller is configured to execute instructions to perform operations including establishing a behavior control zone on the surface, in response to establishing the behavior control zone on the surface, controlling the drive system to maneuver the robot on the surface to a position of the behavior control zone, and using the drive system to maneuver the robot on the surface and initiate a behavior in response to determining, based on the signal indicative of the position of the robot, that the robot is proximate to the behavior control zone.

[0013] In some implementations, the robot can further include a light indicator system. The controller can be operably connected to the light indicator system, and the operations can include activating the light indicator system in response to the robot being proximate to the behavior control zone.

[0014] In some implementations, activating the light indicator system in response to the robot being proximate to the behavior control zone can include operating the light indicator system to indicate a direction of the behavior control zone relative to a position of the robot.

[0015] In some implementations, the operations can include activating the light indicator system in response to establishing the behavior control zone.

[0016] In some embodiments, the operations can include controlling the drive system to navigate the robot through at least a portion of the behavior control zone in response to establishing the behavior control zone. In some embodiments, controlling the drive system to navigate the robot through at least a portion of the behavior control zone can include controlling the drive system to navigate the robot through at least a portion of the behavior control zone in response to wirelessly receiving user instructions. In some embodiments, the portion of the behavior control zone can include a perimeter of the behavior control zone. In some embodiments, the portion of the behavior control zone can include a path through an interior of the behavior control zone.

[0017] In some embodiments, the operations can further include transmitting the mapping data to cause a mobile device to present a map of the surface, and receiving user instructions from the mobile device to establish the behavior control zone.

[0018] In some embodiments, the operations can further include controlling the drive system to navigate the robot along a perimeter of the behavior control zone in response to establishing the behavior control zone.

[0019] In some embodiments, the surface can include a first portion having a first surface type and a second portion having a second surface type. The behavior control zone can cover the second portion having the second surface type. Initiating the behavior in response to determining that the robot is proximate to the behavior control zone based on the signal indicative of the robot's position can include initiating the behavior in response to determining that the robot is proximate to the second portion of the surface while the robot is maneuvering on the first portion of the surface.

[0020] In some embodiments, the robot can include a vacuum system for cleaning the surface, and the behavior includes adjusting a vacuum power delivered to the vacuum system.

[0021] In some embodiments, the behavior can include adjusting a speed of movement of the robot.

[0022] In some embodiments, the behavior can include adjusting a direction of movement of the robot.

[0023] In some embodiments, adjusting the direction of movement of the robot can include orienting the robot to enter the behavior control zone at an angle.

[0024] In some embodiments, the behavior control zone can be a forbidden zone. Such a behavior can include avoiding the forbidden zone.

[0025] In some embodiments, the operations can include controlling the drive system to maneuver the robot into the behavior control zone in a first direction along a path, and in response to detecting that the robot is within the behavior control zone, controlling the drive system to maneuver the robot out of the behavior control zone in a second direction along the path.

[0026] In some implementations, the operation may include: detecting that the robot is within a behavior control area, and preventing the initiation of robot operations in response to detecting that the robot is within the behavior control area. In some implementations, preventing the initiation of robot operations in response to detecting that the robot is within the behavior control area may include preventing the initiation of robot movement operations in response to detecting that the robot is within the behavior control area.

[0027] In some implementations, initiating an action in response to determining that the robot is approaching a behavior control area based on signals indicating the robot's position may include initiating an action in response to determining that the robot is within a buffer zone surrounding the behavior control area based on signals indicating the robot's position. In some implementations, the sensor system is configured to generate data representing the robot's position on the surface. Operation may include estimating an uncertainty associated with the data representing the robot's position, wherein the size of the buffer is based on the estimated uncertainty. In some implementations, the size of the buffer may be proportional to the estimated uncertainty. In some implementations, the size of the buffer may be selected by a user. The size may be provided by a mobile device.

[0028] In some implementations, the behavior control region covers a first portion of the surface containing an object. Operation may include updating the behavior control region to cover a second portion of the surface in response to the object being moved to that second portion.

[0029] In another aspect, a method includes: presenting a map on a display, the map including a representation of the perimeter of a surface in the environment; presenting and overlaying representations of environmental features on the display onto the map; receiving a user instruction to establish a behavior control area on the surface; and transmitting data representing the behavior control area to an autonomous mobile robot to move the robot to a location of the behavior control area on the surface, and causing the robot to initiate an action in response to the robot approaching the behavior control area while manipulating the surface.

[0030] In some implementations, the behavior control area may be associated with at least one identifier. In some implementations, features of the environment may include objects on a surface. At least one identifier may indicate an object on the surface. In some implementations, features of the environment may include a surface type of a portion of the surface. At least one identifier may represent the surface type. In some implementations, the method may further include presenting an image of the environment in augmented reality mode and an identifier representing the behavior control area superimposed on the image of the environment. In some implementations, receiving a user instruction to establish a behavior control area associated with at least one identifier may include receiving a user selection of the portion of the map closest to at least one identifier.

[0031] In some implementations, the robot may be a first autonomous mobile robot. Receiving a user instruction to establish a behavior control zone may include establishing the behavior control zone, causing the first robot to avoid the behavior control zone during an initiated action, and the second autonomous mobile robot to autonomously maneuver through the behavior control zone.

[0032] In some implementations, the method may further include presenting a request to confirm the establishment of a behavior control area. Presenting the request to confirm the establishment of a behavior control area may include presenting the request in response to the robot moving around a portion of the perimeter of the behavior control area.

[0033] In some implementations, this behavior can be a cleaning action in which a robot moves on the surface to clean the surface.

[0034] Details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the following description. Other potential features, aspects, and advantages will become apparent from the specification, drawings, and claims. Attached Figure Description

[0035] Figure 1 It is a schematic top view of the environment.

[0036] Figure 2 , 3A 3B represents the side cross-sectional view, bottom view, and top perspective view of the autonomous mobile robot.

[0037] Figure 4 This is a schematic diagram of a communication network.

[0038] Figure 5A This is a flowchart of the process of controlling an autonomous mobile robot based on a behavior control zone.

[0039] Figure 5B This is a flowchart of the process of establishing a behavior control zone.

[0040] Figure 5C This is a flowchart of the process of controlling an autonomous mobile robot.

[0041] Figure 5D This is a flowchart of the process of updating the behavior control area.

[0042] Figures 6A-6D This is a schematic diagram of a mobile device user interface.

[0043] Figures 7A-7C It is a schematic top view of an environment with a behavior control area.

[0044] Figure 8A and 8B It is a schematic top view of an environment with a behavior control area.

[0045] Figure 9 This is a schematic top view of an environment with autonomous mobile robots in the behavior control area.

[0046] Figure 10 It is a schematic top view of an environment with behavior control areas and buffer zones.

[0047] Figure 11 It is a schematic top view of an environment with multiple robots and behavior control areas.

[0048] Figure 12 This is a diagram of the user interface that provides instructions for the behavior control area.

[0049] Figure 13 and 14 It is an image of the environment portion with overlaid behavior control area identifiers.

[0050] Figures 15A-15B Figures 16A-16B and 17A-17B are illustrations of the user interface of a mobile device.

[0051] The same reference numerals and names in different figures denote the same elements. Detailed Implementation

[0052] Autonomous mobile robots can be controlled to move on a floor surface in an environment. In some implementations, these robots can initiate actions based on their position on the floor surface. For example, a robot can be controlled to initiate a specific action in response to approaching an area on the floor surface. The user can define this area using, for example, an application running on a computing device. Once the user has defined the area, the robot can move to or toward that area to confirm the selection.

[0053] Figure 1 An example of a robot 100 on a floor surface 10 in an environment 20 (e.g., a home) is depicted. A user 30 can define a behavior control area 101 using methods and systems described herein, for example. In response to the user 30 defining the behavior control area 101, the robot 100 moves toward the behavior control area 101 to confirm the selection, for example, moving to a location near the behavior control area 101. This movement allows the user 30 to confirm that the actual location of the behavior control area 101 matches the user's expected location for the behavior control area 101.

[0054] After confirmation, autonomous operation of robot 100 can be initiated. In this autonomous operation, robot 100 can initiate an action in response to proximity to behavior control area 101. For example, in some examples where robot 100 is an autonomous cleaning robot, user 30 defines a dirt-prone area of ​​environment 20 as behavior control area 101. In response to proximity to behavior control area 101, robot 100 can initiate a focused cleaning action, whereby robot 100 focuses on cleaning a portion of the floor surface 10 within behavior control area 101. As described herein, behavior control areas, such as behavior control area 101, allow robot 100 to effectively and adaptively clean the floor surface 10 in environment 20.

[0055] Exemplary autonomous mobile robot

[0056] Figure 2 and 3A -3B depicts an example of robot 100. (See reference...) Figure 2 As robot 100 traverses floor surface 10, it collects debris 105 from the floor surface 10. (Reference) Figure 3A The robot 100 includes a housing structure 108. The housing structure 108 may define the structural perimeter of the robot 100. In some examples, the housing structure 108 includes a chassis, a cover, a base plate, and a buffer assembly. The robot 100 is a small-form-factor home robot, allowing it to be installed under furniture in the home. For example, the robot 100's height H1 relative to the floor surface (e.g., ...) Figure 2 (As shown) can be no more than 13 cm. Robot 100 is also compact. The total length L1 of robot 100 (as shown) Figure 2 (as shown) and total width W1 (as shown) Figure 3A (As shown) are all 30 to 60 cm, for example 30 to 40 cm, 40 to 50 cm or 50 to 60 cm. The total width W1 can correspond to the width of the shell structure 108 of the robot 100.

[0057] Robot 100 includes a drive system 110, which includes one or more drive wheels. Drive system 110 also includes one or more electric motors, each including an electrically driven portion forming part of circuitry 106. Housing construction 108 supports the circuitry 106 within robot 100 and includes at least one controller 109.

[0058] 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 backward drive direction R. The robot 100 can also be propelled to turn in place or turn while moving in the forward drive direction F or the backward drive direction R. Figure 3AIn the example shown, robot 100 includes drive wheels 112 extending through the bottom 113 of housing structure 108. Drive wheels 112 are rotated by a motor 114 to move robot 100 along floor surface 10. Robot 100 also includes passive casters 115 extending through the bottom 113 of housing structure 108. Casters 115 are not powered. Drive wheels 112 and casters 115 cooperate to support housing structure 108 above floor surface 10. For example, casters 115 are positioned along the rear 121 of housing structure 108, and drive wheels 112 are positioned in front of casters 115.

[0059] refer to Figure 3B The robot 100 includes a generally rectangular front portion 122 and a generally semi-circular rear portion 121. The front portion 122 includes side surfaces 150, 152, a front surface 154, and corner surfaces 156, 158. The corner surfaces 156, 158 of the front portion 122 connect the side surfaces 150, 152 to the front surface 154.

[0060] exist Figure 2 , 3A In the example shown in 3B, robot 100 is an autonomous mobile floor cleaning robot that includes cleaning components 116 operable to clean floor surface 10 (such as...). Figure 3A (As shown). For example, robot 100 is a vacuum cleaning robot, wherein the cleaning component 116 is operable to pick up debris 105 (as shown) from the floor surface 10. Figure 2 (As shown) to clean floor surface 10. The cleaning assembly 116 includes a cleaning inlet 117 through which the robot 100 collects debris. The cleaning inlet 117 is located in front of the center (e.g., center 162) of the robot 100 and is located along the front portion 122 of the robot 100 between the side surfaces 150, 152 of the front portion 122.

[0061] The cleaning assembly 116 includes one or more rotatable members, such as a rotatable member 118 driven by a motor 120. The rotatable member 118 extends horizontally through the front portion 122 of the robot 100. The rotatable member 118 is positioned along the front portion 122 of the housing configuration 108 and extends along 75% to 95% of the width of the front portion 122 of the housing configuration 108, for example, corresponding to the total width W1 of the robot 100. See also... Figure 2 The cleaning inlet 117 is located between the rotatable components 118.

[0062] like Figure 2 As shown, the rotatable member 118 is a roller that rotates in opposite directions relative to each other. For example, the rotatable member 118 can rotate about parallel horizontal axes 146, 148 (e.g., ...). Figure 3A(As shown) rotates to agitate debris 105 on floor surface 10 and direct debris 105 toward cleaning inlet 117, into cleaning inlet 117, and into suction path 145 in robot 100 (as shown). Figure 2 (As shown). Refer back to this page. Figure 3A The rotatable component 118 can be completely located within the front portion 122 of the robot 100. The rotatable component 118 includes a resilient housing that, when the rotatable component 118 rotates relative to the housing configuration 108, contacts debris 105 on the floor surface 10 to guide the debris 105 through the cleaning inlet 117 between the rotatable components 118 into the interior of the robot 100, for example, into the debris bin 124 (e.g., Figure 2 (As shown). The rotatable member 118 further contacts the floor surface 10 to agitate the debris 105 on the floor surface 10.

[0063] The robot 100 also includes a vacuum system 119 operable to generate an airflow through a cleaning inlet 117 between rotatable members 118 and into a debris bin 124. The vacuum system 119 includes an impeller and an electric motor that rotates the impeller to generate the airflow. The vacuum system 119 cooperates with a cleaning assembly 116 to draw debris 105 from the floor surface 10 into the debris bin 124. In some cases, the airflow generated by the vacuum system 119 creates sufficient force to draw debris 105 from the floor surface 10 upward through the gaps between the rotatable members 118 and into the debris bin 124. In other cases, the rotatable members 118 contact the floor surface 10 to agitate the debris 105 on the floor surface 10, thereby allowing the debris 105 to be more easily taken up by the airflow generated by the vacuum system 119.

[0064] The robot 100 also includes a brush 126 that rotates about a non-horizontal axis (e.g., an axis that forms an angle between 75 and 90 degrees with respect to the floor surface 10). For example, the non-horizontal axis forms an angle between 75 and 90 degrees with the longitudinal axis of the rotatable member 118. The robot 100 includes a motor 128 operatively connected to the brush 126 to rotate the brush 126.

[0065] Brush 126 is a side brush laterally offset from the front-rear axis FA of robot 100, such that brush 126 extends beyond the outer periphery of the housing structure 108 of robot 100. For example, brush 126 may extend beyond one of the side surfaces 150, 152 of robot 100, thereby being able to reach debris on portions of floor surface 10 that are normally inaccessible to rotatable components 118, such as portions of floor surface 10 beyond the portion directly beneath robot 100. Brush 126 is also offset forward from the lateral axis LA of robot 100, such that brush 126 also extends beyond the front surface 154 of housing structure 108. Figure 3AAs shown, brush 126 extends beyond the side surface 150, corner surface 156, and front surface 154 of housing construction 108. In some embodiments, the horizontal distance D1 by which brush 126 extends beyond the side surface 150 is at least, for example, 0.2 cm, such as at least 0.25 cm, at least 0.3 cm, at least 0.4 cm, at least 0.5 cm, at least 1 cm, or greater. Brush 126 is positioned to contact floor surface 10 during its rotation, such that brush 126 can easily reach debris 105 on floor surface 10.

[0066] As robot 100 moves, brush 126 can rotate about a non-horizontal axis in a manner that brushes debris from floor surface 10 into the cleaning path of cleaning assembly 116. For example, in an example where robot 100 moves in a forward drive direction F, brush 126 can rotate clockwise (when viewed from above robot 100), causing debris contacted by brush 126 to move along the forward drive direction F toward the cleaning assembly and a portion of floor surface 10 in front of cleaning assembly 116. As a result, as robot 100 moves along the forward drive direction F, cleaning inlet 117 of robot 100 can collect debris swept by brush 126. In an example where robot 100 moves in a backward drive direction R, brush 126 can rotate counterclockwise (when viewed from above robot 100), causing debris contacted by brush 126 to move along the backward drive direction R toward a portion of floor surface 10 behind cleaning assembly 116. 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 debris swept by the brush 126.

[0067] In addition to controller 109, circuitry 106 also includes, for example, a memory storage element 144 and a sensor system having one or more electrical sensors. As described herein, the sensor system can generate a signal indicating the current position of robot 100 and can generate a signal indicating the position of robot 100 as robot 100 travels along floor surface 10. Controller 109 is configured to execute instructions to perform one or more operations as described herein. Memory storage element 144 is accessible by controller 109 and is disposed within housing construction 108. One or more electrical sensors are configured to detect features in the environment of robot 100. For example, refer to… Figure 3A The sensor system includes drop sensors 134 disposed along the bottom 113 of the housing configuration 108. Each drop sensor 134 is an optical sensor capable of detecting the presence or absence of an object below it, such as the floor surface 10. The drop sensors 134 can thus detect obstacles, such as drop points and drop sections, below the portion of the robot 100 where the drop sensors 134 are disposed, and redirect the robot accordingly.

[0068] refer to Figure 3B The sensor system includes one or more proximity sensors capable of detecting objects along the floor surface 10 and in the vicinity of the robot 100. For example, the sensor system may include proximity sensors 136a, 136b, and 136c disposed adjacent to the front surface 154 of the housing structure 108. Each of the proximity sensors 136a, 136b, and 136c includes an optical sensor facing outward from the front surface 154 of the housing structure 108, and this optical sensor is capable of detecting the presence or absence of an object in front of the optical sensor. Detectable objects include, for example, obstacles such as furniture, walls, people, and other objects in the robot 100's environment.

[0069] The sensor system includes a buffer system comprising a buffer 138 and one or more buffer sensors that detect contact between the buffer 138 and obstacles in the environment. The buffer 138 forms part of a housing configuration 108. For example, the buffer 138 may form side surfaces 150, 152 and a front surface 154. The sensor system may include collision sensors 139a, 139b. Collision sensors 139a, 139b may include interrupted beam sensors, capacitive sensors, or other sensors capable of detecting contact between the robot 100 (e.g., buffer 138) and objects in the environment. In some embodiments, collision sensor 139a may be used to detect contact between the buffer 138 and the robot 100 along its longitudinal axis FA (e.g., along the front-rear axis FA of the robot 100). Figure 3A (As shown) the motion of the collision sensor 139b, which can be used to detect the movement of the buffer 138 along the lateral axis LA of the robot 100 (e.g. Figure 3A The motion is shown. Proximity sensors 136a, 136b, and 136c can detect objects before the robot 100 contacts them, and collision sensors 139a and 139b can detect objects that contact the buffer 138, for example, in response to the robot 100 contacting the object.

[0070] The sensor system includes one or more obstacle-following sensors. For example, robot 100 may include an obstacle-following sensor 141 along a side surface 150. The obstacle-following sensor 141 includes an optical sensor facing outwards from the side surface 150 of the housing configuration 108, which can detect the presence or absence of an object adjacent to the side surface 150 of the housing configuration 108. The obstacle-following sensor 141 can emit a horizontal beam of light in a direction perpendicular to the forward driving direction F of robot 100 and perpendicular to the side surface 150 of robot 100. Detectable objects include, for example, obstacles such as furniture, walls, people, and other objects in the environment of robot 100. In some embodiments, the sensor system may include an obstacle-following sensor along a 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. One or more obstacle following sensors (including obstacle following sensor 141) can also be used as obstacle detection sensors, for example, similar to the proximity sensors described herein. In this respect, the left obstacle following sensor can be used to determine the distance between the robot 100 and an object (e.g., an obstacle surface) to the left of the robot 100, and the right obstacle following sensor can be used to determine the distance between the robot 100 and an object (e.g., an obstacle surface) to the right of the robot 100.

[0071] In some implementations, at least some of the proximity sensors 136a, 136b, 136c and obstacle-following sensor 141 each include a light emitter and a light detector. The light emitter emits a light beam outward from robot 100, for example, outward in a horizontal direction, and the light detector detects reflections of the light beam from objects near robot 100. Robot 100 can determine the time of flight of the light beam, for example using controller 109, thereby determining the distance between the light detector and the object, and thus the distance between robot 100 and the object.

[0072] In some embodiments, proximity sensor 136a includes a photosensor 180 and a plurality of light emitters 182, 184. One of the light emitters 182, 184 may be positioned to guide the light beam outward and downward, while the other of the light emitters 182, 184 may be positioned to guide the light beam outward and upward. Photosensor 180 may detect reflection or scattering of the light beam. In some embodiments, photosensor 180 is an imaging sensor, a camera, or some other type of detection device for sensing optical signals. In some embodiments, the light beam illuminates a horizontal line along a flat, vertical surface in front of robot 100. In some embodiments, light emitters 182, 184 each emit fan-shaped beams outward toward an obstacle surface, causing a one-dimensional dot matrix to appear on one or more obstacle surfaces. The one-dimensional dot matrix may lie on a horizontally extending line. In some embodiments, the dot matrix may extend across multiple obstacle surfaces, for example, multiple obstacle surfaces adjacent to each other. Photosensor 180 may capture images representing the dot matrix formed by light emitters 182 and light emitters 184. Based on the size of points in the image, robot 100 can determine the distance of objects on which points appear relative to photodetector 180, such as the distance relative to robot 100. Robot 100 can make this determination for each point, allowing it to determine the shape of the objects on which points appear. Additionally, if multiple objects are in front of robot 100, robot 100 can determine the shape of each object. In some embodiments, objects may include one or more objects laterally offset from a portion of the floor surface 10 directly in front of robot 100.

[0073] The sensor system also includes an image capturing device 140, such as a camera, pointing towards the top 142 of the housing structure 108. As the robot 100 moves on the floor surface 10, the image capturing device 140 generates a digital image of the robot 100's environment. The image capturing device 140 is angled in an upward direction, for example, at an angle of 30 to 80 degrees relative to the floor surface 10 around which the robot 100 navigates. When angled upward, the camera is able to capture images of the wall surfaces of the environment, allowing features corresponding to objects on the wall surfaces to be used for localization.

[0074] When controller 109 instructs robot 100 to perform a task, controller 109 operates motor 114 to drive drive wheels 112 and propel robot 100 along floor surface 10. Additionally, controller 109 operates motor 120 to rotate rotatable component 118, operates motor 128 to rotate brush 126, and operates the motors of vacuum system 119 to generate airflow. To enable robot 100 to perform various navigation and cleaning actions, controller 109 executes software stored on memory storage element 144 to cause robot 100 to perform actions by operating the various motors of robot 100.

[0075] The sensor system may further include sensors for tracking the distance traveled by the robot 100. For example, the sensor system may include encoders associated with the motor 114 for driving the wheels 112, and these encoders may track the distance traveled by the robot 100. In some embodiments, the sensor system includes optical sensors facing downwards toward the floor surface. The optical sensors may be optical mouse sensors. For example, the optical sensors may be positioned to guide light through the bottom surface of the robot 100 toward the floor surface 10. The optical sensors may detect reflections of light and may detect the distance traveled by the robot 100 based on changes in floor features as the robot 100 travels along the floor surface 10.

[0076] The controller 109 uses data collected by sensors from the sensor system to control the navigation actions of the robot 100 during the task. For example, the controller 109 uses sensor data collected by obstacle detection sensors of the robot 100 (such as drop sensor 134, proximity sensors 136a, 136b, 136c, and collision sensors 139a, 139b) to enable the robot 100 to avoid obstacles in its environment during the task.

[0077] Sensor data can be used by controller 109 for Simultaneous Localization and Mapping (SLAM) techniques, where controller 109 extracts features of the environment represented by the sensor data and constructs a map of the floor surface 10 of the environment. Sensor data collected by image capture device 140 can be used for techniques such as vision-based SLAM (VSLAM), where controller 109 extracts visual features corresponding to objects in the environment and uses these visual features to construct a map. When controller 109 navigates robot 100 to move on floor surface 10 during a task, controller 109 uses SLAM techniques to determine the position of robot 100 within the map by detecting features presented in the collected sensor data and comparing these features with previously stored features. The map formed from sensor data can represent the locations of accessible and impassable spaces within the environment. For example, the location of obstacles is represented as impassable space on the map, while the location of open floor space is represented as accessible space on the map.

[0078] Sensor data collected by any sensor can be stored in memory storage element 144. Additionally, other data generated for SLAM technology, including map-forming data, can be stored in memory storage element 144. This data generated during a task can include persistent data generated during the task and available during the next task. For example, a task can be a first task, and a further task can be a second task that occurs after the first task. Besides storing the software used to enable robot 100 to perform its actions, memory storage element 144 stores sensor data or data generated from the processing of sensor data for access by controller 109 from one task to another. For example, the map is a persistent map that can be used and updated by robot 100's controller 109 from one task to another for navigation of robot 100 on floor surface 10.

[0079] Persistent data, including persistent maps, enables robot 100 to effectively clean floor surface 10. For example, persistent maps allow controller 109 to guide robot 100 to open floor spaces and avoid impassable areas. Furthermore, for subsequent tasks, controller 109 can use persistent maps to plan robot 100's navigation in the environment to optimize the path taken during the task.

[0080] In some embodiments, robot 100 may include a light indicator system 137 located on top 142 of robot 100. The light indicator system 137 may include a light source (such as...) located within a cover 147 covering the debris bin 124. Figure 3A(As shown). The light source can be positioned to direct light to the outer periphery of the cover 147. The light source is positioned such that any portion of the continuous ring 143 on the top 142 of the robot 100 can be illuminated. The continuous ring 143 is located on a recessed portion of the top 142 of the robot 100, such that the light source can illuminate the surface of the robot 100 when activated.

[0081] Exemplary communication network

[0082] refer to Figure 4 An exemplary communication network 185 is illustrated. Nodes of the communication network 185 include a robot 100, a mobile device 188, an autonomous mobile robot 190, and a cloud computing system 192. Using the communication network 185, the robot 100, mobile device 188, robot 190, and cloud computing system 192 can communicate with each other to transmit and receive data. In some embodiments, robot 100, robot 190, or both robot 100 and robot 190 communicate with mobile device 188 via cloud computing system 192. Alternatively or additionally, robot 100, robot 190, or both robot 100 and robot 190 communicate directly with mobile device 188. The communication network 185 can employ various types and combinations of wireless networks (e.g., Bluetooth, radio frequency, optical, etc.) and network architectures (e.g., mesh networks).

[0083] In some implementations, such as Figure 4 The illustrated mobile device 188 is a remote device that can be linked to the cloud computing system 192 and allows user 30 to provide input on the mobile device 188. The mobile device 188 may include user input elements such as a touchscreen display, buttons, a microphone, a mouse, a keyboard, or one or more other devices that respond to input provided by user 30. The mobile device 188 may alternatively or additionally include immersive media (e.g., virtual reality) with which user 30 interacts to provide user input. In these cases, the mobile device 188 is, for example, a virtual reality head-mounted device or a head-mounted display. The user can provide input to the mobile robot 188 corresponding to commands. In this case, the mobile device 188 transmits signals to the cloud computing system 192, causing the cloud computing system 192 to transmit command signals to the mobile robot 100. In some embodiments, the mobile device 188 may present augmented reality images. In some embodiments, the mobile device 188 is a smartphone, laptop computer, tablet computing device, or another mobile device.

[0084] In some implementations, the communication network 185 may include additional nodes. For example, nodes in the communication network 185 may include additional robots. Alternatively or additionally, nodes in the communication network 185 may include devices connected to the network. In some implementations, network-connected devices may generate information about the environment 20. Network-connected devices may include one or more sensors to detect features in the environment 20, such as acoustic sensors, image capture systems, or other sensors that generate signals that can be used to extract features. Network-connected devices may include home cameras, smart sensors, etc.

[0085] exist Figure 4 In the illustrated communication network 185 and other embodiments thereof, the wireless link can utilize various communication schemes, protocols, etc., such as Bluetooth classes, wireless networks, Bluetooth Low Energy (BLE 802.15.4), Global Interoperability Microwave Access (WiMAX), infrared channels, or satellite bands. In some cases, the wireless link includes any cellular network standard for communication between mobile devices, including but not limited to standards conforming to 1G, 2G, 3G, or 4G standards. If a network standard is used, it can serve as a mobile telecommunications standard of one or more generations by satisfying one or more specifications, such as those maintained by the International Telecommunication Union (ITU). A 3G standard (if used) corresponds to, for example, the International Mobile Telecommunications-2000 (IMT-2000) specification, and a 4G standard can correspond to the International Mobile Telecommunications Advanced (IMT-Advanced) specification. Examples of cellular network standards include AMPS, GSM, GPRS, UMTS, LTE, Advanced LTE, Mobile WiMAX, and Advanced WiMAX. Cellular network standards can use various channel access methods, such as FDMA, TDMA, CDMA, or SDMA.

[0086] Exemplary process

[0087] Robot 100 can be controlled in a specific manner according to the processes described herein. While some operations of these processes can be described as being performed by robot 100, by a user, by a computing device, or by another actor, in some implementations, these operations can be performed by actors other than those described. For example, in some embodiments, operations performed by robot 100 can be performed by cloud computing system 192 or another computing device (or multiple 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. Instead, other computing devices perform operations described as being performed by cloud computing system 192, and these computing devices can communicate with each other and directly (or indirectly) with robot 100. In some implementations, in addition to operations described as being performed by robot 100, robot 100 can also perform operations described as being performed by cloud computing system 192 or mobile device 188. Other variations are also possible. Furthermore, while the methods, processes, and operations described herein are described as including certain operations or sub-operations, in other implementations, one or more of these operations or sub-operations may be omitted, or additional operations or sub-operations may be added.

[0088] Figure 5A A flowchart illustrating a method for controlling an autonomous mobile robot based on a behavior control area is shown. This method, along with other examples of methods described herein, is described with respect to the control of robot 100. In other embodiments, other types of autonomous mobile robots can be controlled.

[0089] refer to Figure 5A Process 200 includes operations 202, 204, and 206. In operation 202, a behavior control area is established. In operation 204, robot 100 is controlled, for example, to perform autonomous operations, wherein robot 100 navigates within environment 20 and responds to the behavior control area. For example, the drive system 110 of robot 100 ( Figure 3A The robot 100 (shown in the diagram) can be controlled to manipulate the robot 100 on the floor surface 10. Figure 1 As shown in the diagram, the behavior of robot 100 can be initiated in response to signals representing the position of robot 100 generated by the robot's sensor system, indicating robot proximity to the behavior control area. In operation 204, for example, in response to changes in environment 20, the behavior control area is updated. (This is in conjunction with...) Figure 5B , 5C Further examples of the suboperations of operations 202, 204, and 206 described in 5D.

[0090] Figure 5BAn example process for operation 202, which establishes a behavior control area, is illustrated. In operations 208, 210, 212, 214, and 216, map rendering data is generated and transmitted to mobile device 188 to allow mobile device 188 to generate a representation of environment 20. In operation 208, robot 100 generates map rendering data for environment 20, and in operation 210, robot 100 transmits the map rendering data to cloud computing system 192. In operation 212, cloud computing system 192 receives the map rendering data generated by robot 100. In operation 214, cloud computing system 192 transmits the map rendering data generated by robot 100 to mobile device 188. And in operation 216, mobile device 188 receives the map rendering data generated by robot 100. As described with respect to operation 218, mobile device 188 can use this map rendering data to generate a representation of environment 20.

[0091] In some embodiments, during operation 208, robot 100 may generate mapping data during an autonomous cleaning operation. The mapping data may represent portions of the floor surface 100 that the robot 100 can pass through and portions that the robot 100 cannot pass through. The mapping data can be generated using the robot 100's sensor system. As the robot 100 moves on the floor surface 10, the sensor system may generate data representing the robot 100's position on the floor surface 10, and mapping data may be generated based on the data representing the robot 100's position. In some embodiments, as the robot 100 moves on the ground, its sensor system may be used to detect obstacles on the ground 10. The mapping data generated by the robot may indicate the position of obstacles on the surface. In some embodiments, the sensor data generated by robot 100 and data generated by one or more network-connected devices in environment 20 together form the mapping data. Network-connected devices may include cameras, optical sensors, range sensors, acoustic sensors, or other sensors that generate signals for forming a portion of a map of environment 20.

[0092] In some implementations, cloud computing system 192 can process map-drawing data generated by robot 100 such that the data transmitted by cloud computing system 192 in operation 214 and received by mobile device 188 in operation 216 differs from the map-drawing data generated by robot 100 in operation 208. For example, cloud computing system 192 can generate user interface data from the map-drawing data, and then transmit the user interface data in operation 214. User interface data can be generated using map-drawing data generated by robot 100 and data received from other network-connected devices. User interface data may include classifications of certain features identified in environment 20, such as furniture, floor surface type, or other features.

[0093] In operation 218, mobile device 188 generates a map of environment 20. For example, in operation 216, mobile device 188 generates a map based on data received by mobile device 188 and displays the map on the display of mobile device 188. In some embodiments, the data received at mobile device 188 in operation 216 may include data about features in environment 20, such as floor surface type, obstacles, wall fixtures, appliances, and other features in environment 20 that can be detected by robot 100 and its sensor systems.

[0094] Figure 6A An example of a map 300 presented on a mobile device 188 is shown. Map 300 includes floor surfaces 10 that the robot 100 can pass through (such as...). Figure 1 A representation of a portion of the perimeter 302 (as shown). A representation 304 indicating the current position of robot 100 is overlaid on map 300.

[0095] The labels 306a, 306b, 306c, 308d, and 306e (collectively referred to as room 308) for rooms 308 are overlaid on map 300. For example, the type of each room 308 can be identified based on one or more objects within each room. See also... Figure 1 Room 308 includes a bedroom 308a, a bathroom 308b, an office 308c, a dining room 308d, and a kitchen 308e. Bedroom 308a can be identified based on the presence of objects typically found in a bedroom, such as a bed and coffee table. Bathroom 308b can be identified based on the presence of objects typically found in a bathroom, such as a bathtub, toilet, sink, and mirror. Office 308c can be identified based on the presence of objects typically found in an office, such as a desk and computer. Dining room 308d can be identified based on the presence of objects typically found in a dining room, such as a dining table and chairs. Kitchen 308e can be identified based on the presence of objects typically found in a kitchen, such as cabinets, a kitchen island, and countertops. In some embodiments, objects in room 308 can be identified using the sensor system of robot 100 or using sensors from other networked devices in environment 20.

[0096] In some implementations, the mobile device 188 may present a request to the user 30 to provide a tag for each room 308. Rooms 308 can thus be manually tagged 306 by the user 30. In some implementations, the tag 306 is determined based on the computer identifier of an object in the room 308.

[0097] like Figure 6AAs shown, the mobile device 188 can display an identifier indicating characteristics of the environment 20. For example, identifier 310 can indicate a carpet block 312 located in the dining room 308d (such as...). Figure 1 The location of bed 316 (as shown) can be indicated by symbol 314. Figure 1 The location is shown. Indicator 317 can indicate a first floor type in kitchen 308e, and indicator 319 can indicate a second floor type in kitchen 308e. For example, the portion of floor surface 10 corresponding to indicator 317 in kitchen 308e can be a hardwood surface, while the portion of floor surface 10 corresponding to indicator 319 in kitchen 308e can be a carpet surface. In some embodiments, other indicators indicating other objects and features in environment 20 can be displayed as overlays on map 300. For example, indicators can indicate other furniture in environment 20, detectable features on the walls of environment 20, other floor types in environment 20, or other features in environment 20.

[0098] Back Figure 5B In operation 220, user 30 provides input to establish a behavior control area. User 30 may operate mobile device 188 to provide input, such as a user input device operating mobile device 188, such as a touchscreen, one or more buttons on mobile device 188, voice commands, gestures, or other user input devices. See also Figure 6A The mobile device 188 may display map 300 and request user 30 to define a behavior control zone using map 300. In some embodiments, to define a behavior control zone, user 30 may select one of the representations displayed on the mobile device 188 to define the area associated with that representation as the behavior control zone. User 30 may select a portion of map 300 adjacent to the representation to define the behavior control zone associated with that representation. For example, also refer to... Figure 7A The behavior control area 318 corresponding to the location of the bed 316 in the bedroom 308a can be defined by selecting an identifier 314 presented on the mobile device 188. Alternatively or additionally, the user 30 can manually select an area on the map 300 to define the behavior control area. For example, if the mobile device 188 includes a touchscreen, the user 30 can interact with the touchscreen to define the behavior control area by drawing a shape on the touchscreen.

[0099] In operations 222, 224, 226, 228, and 230, input provided by user 30 is used to generate instructions provided to robot 100. Specifically, in operation 222, mobile device 188 receives input provided by user 30 in operation 220. Mobile device 188 can generate data representing behavior control area 318. For example, the data can represent the location or perimeter of behavior control area 318. In operation 224, mobile device 188 transmits the data representing behavior control area 318 to cloud computing system 192. In operation 226, cloud computing system 192 receives the data representing behavior control area 318. In operation 228, cloud computing system 192 transmits the data representing behavior control area to robot 100. In operation 230, robot 100 receives the data representing behavior control area 318.

[0100] In operations 232, 234, and 236, behavior control area 318 is acknowledged. After receiving data representing behavior control area 318, in operation 232, robot 100 acknowledges behavior control area 318. Robot 100 can provide feedback to indicate that it has received data representing behavior control area 318.

[0101] Robot 100 can also confirm the location or perimeter of behavior control area 318. In some embodiments, robot 100 confirms the location or perimeter of behavior control area 318 by performing a confirmation movement. Figure 7A In the example shown, robot 100 moves relative to behavior control area 318 in a manner that indicates the location of behavior control area 318. In response to receiving data indicating behavior control area 318, robot 100 moves from its position 320 to position 322. Position 322 may be close to, within, or along the perimeter of behavior control area 318. In some embodiments, robot 100 travels along a path on floor surface 10 to confirm the location or perimeter of behavior control area 318. For example, robot 100 may follow a path along a portion of the perimeter of behavior control area 318. In some embodiments, the path may extend through a portion of behavior control area 318. A portion of behavior control area 318 may be the interior of behavior control area 318 or a portion of the perimeter of behavior control area 318.

[0102] In some implementations, robot 100 may provide visual or auditory cues to indicate receipt of data representing behavior control area 318. In some implementations, robot 100 may provide visual or auditory cues confirming completion of movement after a confirmed movement has been completed. The visual or auditory cues may indicate that a request for user confirmation has not yet been resolved. For example, in some implementations, the light indicator system 137 (e.g., [missing information]) may be activated in response to the establishment of behavior control area 318 or to indication that robot 100 has confirmed behavior control area 318. Figure 3B (As shown).

[0103] After robot 100 confirms behavior control area 318, mobile device 188 requests user 30 to confirm behavior control area 318 at operation 234 to establish behavior control area 318. For example, robot 100 may transmit data to mobile device 188 indicating that robot 100 has completed its confirmed movement. (See reference) Figure 6B The mobile device 188 can present a request for confirmation by the user 30, wherein the mobile device 188 presents a map 300 and an indicator 324, which highlights the area 318 on the floor surface 10 where a behavior control zone will be established (e.g., Figure 7A The region shown. For example, the identifier 324 can be associated with the region corresponding to bed 316 (as shown). Figure 7A The symbol 314 (as shown) Figure 6A The same as (as shown), except that the symbol 324 has a different color, pattern or other visual features that are different from those of the symbol 314.

[0104] In operation 236, user 30 can confirm the behavior control area. For example, as... Figure 6B As shown, the mobile device 188 can display a "Confirm" button 326. The user 30 can observe the robot 100 in the environment 20 to visually confirm the position of the robot 100, and thus confirm the position of the behavior control area 318. The user 30 can select the "Confirm" button 326 to provide confirmation of the behavior control area 318. After the user 30 confirms the behavior control area 318, the data representing the behavior control area 318 can be stored on one or more of the mobile device 188, the cloud computing system 192, or the robot 100.

[0105] Return to reference Figure 5A After operation 202 establishes behavior control area 318 (e.g., after completing the binding) Figure 5BFollowing the described operation, in response to determining that robot 100 is approaching or within behavior control area 318, robot 100 can be controlled to initiate an action. For example, robot 100 can initiate an autonomous cleaning operation, wherein robot 100 moves in environment 20 to clean floor surface 10. During the autonomous cleaning operation, robot 100 can initiate the action in response to determining that robot 100 is approaching or within behavior control area 318. Robot 100 can determine that it is approaching or within behavior control area 318 based on signals generated by robot 100's sensor system.

[0106] Figure 5C An example of an operation performed as part of operation 204 of controlling robot 100 is shown. In operation 238, robot 100 begins to manipulate within environment 20. For example, robot 100 may initiate an autonomous cleaning operation, wherein robot 100 uses its vacuum system 119 and cleaning components 116 (such as...) Figure 3A (As shown) The robot 100 autonomously manipulates itself on the floor surface 10 while cleaning the floor surface. To cover the passable portion of the floor surface 10, the robot 100 can initiate various movement behaviors during the autonomous cleaning operation. Movement behaviors can include, for example, cornrow behavior, in which the robot 100 moves in parallel rows on a portion of the floor surface, and obstacle-following behavior, in which the robot 100 moves along the perimeter of an obstacle. Figure 7B The motion path 327 is shown when the robot 100 performs an autonomous cleaning operation, wherein the robot 100 moves in the environment 20 to clean the floor surface 10.

[0107] Return to reference Figure 5C During autonomous cleaning operations, robot 100 determines its proximity to behavior control area 318 at operation 240, and then initiates an action at operation 242 in response to determining that the robot is approaching behavior control area 318. User 30 can set behavior control area 318 to prevent robot 100 from being on bed 316 (e.g., during autonomous cleaning operations). Figure 7A (As shown) moves below. Robot 100 can use its sensor system to determine its approach to behavior control area 318. For example, robot 100 can use its sensor system to track its position and determine when its current position approaches behavior control area 318. In some embodiments, if behavior control area 318 is associated with an object in environment 20, robot 100 can detect that object to determine that robot 100 is approaching behavior control area 318. In embodiments where behavior control area 318 is associated with bed 316 (e.g.) Figure 7A As shown), in order to determine that robot 100 is approaching behavior control area 318, robot 100 can use one or more sensors of robot 100's sensor system to detect bed 316.

[0108] Figure 7B An example of a behavior control zone 318 is shown, where the action initiated by robot 100 in response to detecting behavior control zone 318 corresponds to a prohibited behavior. In the prohibited behavior, robot 100 avoids entering behavior control zone 318. Figure 7B As shown, robot 100 can treat behavior control area 318 as an obstacle. Therefore, robot 100 can initiate obstacle following behavior in response to determining that robot 100 is approaching behavior control area 318. In obstacle following behavior, robot 100 moves along the perimeter of behavior control area 318, and thus moves along the perimeter of bed 316.

[0109] Return to reference Figure 5C Robot 100 can activate an indicator at operation 244 to indicate that robot 100 is performing an action in response to the detection of behavior control area 318. For example, in response to robot 100 approaching behavior control area 318, robot 100 can activate light indicator system 137 (e.g., Figure 3B As shown), to illuminate at least a portion of the continuous ring 143 (as shown). Figure 3B (As shown). The illuminated portion can represent the orientation of the behavior control area 318 relative to the robot 100.

[0110] In operations 246, 248, 250, 252, and 254, robot 100 can transmit data to enable mobile device 188 to provide user 30 with a representation that robot 100 initiated an action in response to detection of behavior control area 318. Robot 100 can transmit data indicating that an action has been initiated at operation 246. In operation 248, cloud computing system 192 receives the data transmitted by robot 100 at operation 246. In operation 250, cloud computing system 192 transmits data to mobile device 188, and in operation 252, mobile device 188 receives the data. In operation 254, mobile device 188 provides indication to user 30 that an action associated with behavior control area 318 has been initiated by robot 100. For example, refer to... Figure 6C The mobile device 188 can display the robot 100's identifiers 328 and 324, and the robot 100's path identifier 330 on the map 300. The identifier 330 can display a message indicating that the robot 100 has initiated an action to move along a path that avoids the behavior control area 318. In addition, the mobile device 188 can display a message 332 indicating that the robot 100 has encountered the behavior control area 318.

[0111] In some implementations, the instructions provided to user 30 at operation 254 may be part of the presentation of the task status for the autonomous cleaning operation. In this regard, mobile device 188 may provide information about the duration of the autonomous cleaning operation, as well as information about whether behavior control zones 318 were encountered during the autonomous cleaning operation and how many times behavior control zones 318 were encountered during the autonomous operation. In implementations where multiple behavior control zones are established, mobile device 188 may present information to user 30 indicating which behavior control zones were encountered.

[0112] Back Figure 5A The behavior control area 318 can be updated at operation 206, for example, in response to changes in environment 20. For example, the behavior control area 318 can be updated in response to the movement of an object associated with the behavior control area 318 in environment 20, or in response to the removal of an object associated with the behavior control area 318.

[0113] Figure 5D An example procedure for operation 206 is shown, in which behavior control area 318 is updated. In operation 256, robot 100 generates map-making data. Robot 100 can generate map-making data during autonomous cleaning operations. This autonomous cleaning operation can be the first autonomous cleaning operation performed after behavior control area 318 is established, or it can be a subsequent autonomous cleaning operation performed after the first autonomous cleaning operation. The sensor system of robot 100 can be used in a manner similar to that of a reference... Figure 5B Operation 208 describes the method for generating map drawing data.

[0114] In operation 258, the cloud computing system 192 compares the map data generated in operation 256 with previously generated map data, such as the map data generated in operation 208 or during another autonomous cleaning operation. After generating the map data in operation 256, the robot 100 can transmit the map data to the cloud computing system 192. By comparing the map data generated in operation 256 with previously stored map data, the cloud computing system 192 can determine whether the behavior control area 318 established in operation 202 has been moved. Specifically, if the position of an object associated with the behavior control area 318 in the map data generated in operation 256 differs from the position of an object in the previously stored map data, the cloud computing system 192 can determine that the behavior control area 318 has been moved.

[0115] Figure 7CAn example of behavior control area 318 being updated is shown. Behavior control area 318 can be updated in response to bed 316 moving from its original position to a new updated position. Because bed 316 is associated with behavior control area 318, the position of behavior control area 318 is updated from its original position 318a (where behavior control area 318 covers a first portion of floor surface 10) to updated position 318b (where behavior control area 318 covers a second portion of floor surface 10).

[0116] After determining that the behavior control area should be updated based on map data, in operation 260, the cloud computing system 192 can update the behavior control area 318. Specifically, the cloud computing system 192 can update the location of the behavior control area 318. In operation 262, the mobile device 188 can display a representation that the behavior control area 318 has been updated.

[0117] Figure 6D An example of a representation shown on mobile device 188 indicates that behavior control area 318 has been updated. Representation 336, overlaid on map 300, indicates the old location of behavior control area 318 covering the first portion of floor surface 10 (e.g., ...). Figure 7C As shown), the symbol 338 superimposed on map 300 indicates the new location of the behavior control zone 318 covering the second part of the floor surface 10 (as shown). Figure 7C (As shown). The mobile device 188 may further present a message 339 indicating that the behavior control area 318 has been updated. In some embodiments, before updating the behavior control area 318 stored in the cloud computing system 192 or the robot 100, the mobile device 188 may present a request to the behavior control area 318 to confirm the proposed update.

[0118] Other alternative embodiments

[0119] Many implementations have been described, including alternative implementations. However, it should be understood that further alternative implementations are possible, and various modifications can be made.

[0120] In some implementations, the behavior initiated by robot 100 in response to determining that robot 100 is approaching a behavior control area can vary. For example, as shown in reference... Figure 6C and 7B In some embodiments, the behavior control zone 318 may be a no-go zone to ensure that the robot 100 does not enter the behavior control zone 318 during autonomous cleaning operations. In some embodiments, the robot 100 may initiate a behavior in which it enters the behavior control zone but performs the cleaning operation with settings different from its settings outside the behavior control zone. The robot 100 may adjust the vacuum system 119 supplied to the robot 100 (e.g.,Figure 3A The user 30 can adjust the vacuum power (shown), the moving speed of robot 100, the moving direction of robot 100, or the orientation of robot 100 relative to the behavior control area. To set a specific action that the robot initiates in response to determining that robot 100 is approaching the behavior control area, user 30 can, for example, operate mobile device 188 during operation 202 to establish the behavior control area. For example, when user 30 provides input in operation 220 to establish the behavior control area, user 30 can also select the action to be initiated by robot 100 in response to detecting the behavior control area.

[0121] In some implementations, in response to determining that robot 100 is approaching a behavior control area, the behavior control area can be selected to cause robot 100 to initiate a focused cleaning action. Robot 100 performs the focused cleaning action as it moves through the interior of the behavior control area. Robot 100 can adjust the vacuum power delivered to vacuum system 119 (e.g., ...). Figure 3A (As shown). Specifically, when robot 100 passes through the behavior control area, the vacuum power delivered to the vacuum system 119 of robot 100 may be greater than the vacuum power delivered to the vacuum system 119 when the robot passes through a portion of the floor surface 10 outside the behavior control area. In some embodiments, during focused cleaning activities, robot 100 may adjust its movement speed. The robot 100 may reduce its movement speed relative to its movement speed when it passes through a portion of the floor surface 10 outside the behavior control area. Alternatively or additionally, during focused cleaning activities, robot 100 may adjust its movement pattern. Robot 100 may move within the behavior control area in a spiral pattern, a cornrow pattern, or other suitable movement pattern.

[0122] Figure 8A An example is shown where the behavior control area is configured to cause robot 100 to initiate targeted cleaning behaviors. In this example, for example in operation 202 (refer to...) Figure 5A(Description) Establish a behavior control zone 340 associated with carpet tile 312. During autonomous cleaning operations, robot 100 initiates a behavior upon entering behavior control zone 340. This behavior can be a focused cleaning behavior as described herein. For example, the movement pattern of robot 100 can be adjusted. Robot 100 can move in a cornrow pattern 342 within behavior control zone 340, where the rows of cornrow pattern 342 are more closely spaced compared to the rows of cornrow pattern 344 outside behavior control zone 340. In some cases, robot 100 can move in a movement pattern in which robot 100 moves multiple times on the same portion of floor surface 10. Alternatively or additionally, robot 100 can increase the vacuum power delivered to its vacuum system and / or decrease its movement speed as robot 100 passes through behavior control zone 340. Behavior control zone 340 can allow robot 100 to clean carpet tile 312 more effectively.

[0123] Figure 8B An example is shown where a behavior control zone is configured to allow robot 100 to move at an angle through the zone. In this example, behavior control zone 343 may be associated with a threshold between kitchen 308e and dining room 308d. During autonomous cleaning operations, robot 100 initiates a behavior in response to approaching behavior control zone 343. If robot 100 moves at an angle past the threshold, it can more easily cross the threshold between kitchen 308e and dining room 308d. At this point, the angle of movement of robot 100 relative to behavior control zone 343 can be adjusted before robot 100 passes through behavior control zone 343. Robot 100 can move at an angle relative to behavior control zone 343, and therefore at an angle relative to the threshold between kitchen 308e and dining room 308d.

[0124] In some implementations, the behavior control zone is a restricted area, within which robot 100 is located. For example, robot 100 may be manually positioned in the behavior control zone by a user, or robot 100 may move autonomously into the behavior control zone. In the example where robot 100 autonomously moves into the behavior control zone, robot 100 may initiate an escape behavior, in which robot 100 moves along a path outside the behavior control zone. See also... Figure 9 Robot 100 is located within behavior control area 318. Robot 100 moves into the behavior control area during autonomous cleaning operations. In the case where its position is determined using a sensor system, robot 100 determines that it has moved into the behavior control area without triggering any action to be initiated in response to robot 100's approach to behavior control area 318 (in conjunction with...). Figure 5C (As described in operations 242 and 244). This situation may occur due to sensor errors used to estimate the position of robot 100 within environment 20 or other reasons.

[0125] In response to detecting that robot 100 is within behavior control area 318, robot 100 can be manipulated to leave behavior control area 318 along path 346. Path 346 may correspond to the path followed by robot 100 when entering behavior control area. Robot 100 moves along path 346 in a first direction to enter behavior control area 318, and moves along path 346 in a second direction to leave behavior control area 318.

[0126] In some implementations, robot 100 is within behavior control area 318, and it is determined that robot 100 did not move autonomously into behavior control area 318, but was instead placed there, for example, manually by the user. In this case, initiation of operation of robot 100 can be prevented in response to detecting that robot 100 is within behavior control area 318. For example, if user 30 attempts to initiate an autonomous cleaning operation or other operation that would cause robot 100 to move, operation in response to detecting that robot 100 is within behavior control area 318 is prevented.

[0127] As described herein, the behavior control area may have a perimeter, and the robot 100's behavior may be triggered in response to approaching or being within the perimeter of the behavior control area. In some embodiments, the robot 100 initiates behavior in response to being within a buffer zone surrounding the behavior control area. See also... Figure 10 A buffer zone 348 is located around a behavior control area 318. Robot 100 can respond to being within the buffer zone 348 to ensure that robot 100 does not enter the behavior control area 318 due to positioning uncertainty. In some embodiments, without a buffer, uncertainty associated with estimating the position of robot 100 may cause robot 100 to enter the behavior control area 318 without confirmation that robot 100 is approaching or within the behavior control area 318. The size of the buffer zone 348 can be selected based on the uncertainty associated with the position estimation of robot 100. The uncertainty associated with data indicating the position of robot 100 can be estimated, and the size of the buffer zone 348 can be selected based on this estimated uncertainty. In some embodiments, the size of the buffer zone 348 is proportional to the estimated uncertainty and can change as the estimated uncertainty changes.

[0128] In some implementations, buffer 348 is not selected proportionally to or based on the estimated uncertainty, but rather selected by user 30 using, for example, mobile device 188. For instance, user 30 can use mobile device 188 to select the size of buffer 348.

[0129] Robot 100 is described as a vacuum cleaning robot. Other types of robots may be used in some embodiments. In some embodiments, a behavior control area is used in conjunction with an autonomous mopping robot. For example, see reference... Figure 11 Robot 100 and Robot 190 (e.g., combined) Figure 4 The robot 100 (described herein) is located in environment 20. Robot 100 is a vacuum cleaning robot as described herein. Autonomous mobile robot 190 is an autonomous mopping robot. Robot 190 may carry a cleaning pad configured to wipe the floor surface 10 as it moves across it. Robot 190 may also apply fluid to the floor surface 10, for example, by spraying fluid onto it. For intensive cleaning modes, robot 190 may press the cleaning pad more firmly onto a portion of the floor surface 10, spray more water onto a portion of the floor surface 10, or pass over a portion of the floor surface multiple times.

[0130] Behavior control zones can be set up so that robots 100 and 190 respond differently to proximity to these zones. For example, the floor surface 10 in kitchen 308e can have two different floor types: a carpet portion 352 and a hardwood portion 354. The behavior control zone 350 for the carpet portion 352 of the floor surface 10 can be configured, for example, according to a reference... Figure 5B The described operations are used to establish it.

[0131] Because robot 100 is a vacuum cleaning robot and robot 190 is a mopping robot, a behavior control zone 350 is established corresponding to the hardwood portion 354 of the floor surface 10, allowing robot 100 to enter and clean the behavior control zone 350, while robot 190 avoids entering it. In this respect, the behavior control zone 350 is considered a no-go area by robot 190. In some embodiments, the behavior control zone 350 is ignored by robot 100. In some embodiments, the behavior control zone 350 is considered a priority cleaning area by robot 100.

[0132] In some implementations, reference Figure 12 Mobile device 188 is represented on map 300 by symbol 356 indicating the boundary of the behavior control zone. See again briefly. Figure 1 The behavior control area corresponding to identifier 356 can be the area below table 358 in restaurant 308d. In some embodiments, refer to Figure 13In augmented reality mode, an image 360 ​​of environment 20 can be displayed on mobile device 188, and an identifier 362 representing the behavior control area is overlaid on the image 360 ​​of environment 20. In some embodiments, mobile device 188 may display a "confirm" button 364 to allow user 30 to confirm the behavior control area shown in image 360. User 30 can select the "confirm" button 364 to provide confirmation of the behavior control area as described herein.

[0133] In some implementations, in augmented reality mode, user 30 can select a behavior control area by selecting portions of image 360. For example, user 30 can select an object presented in image 360, such as dining table 358. For example, if a representation of dining table 358 is selected, a behavior control area can be established, such as a behavior control area represented by representation 362. In some implementations, such as... Figure 14 As shown, in augmented reality mode, user 30 can draw a behavior control area. User 30 can select one or more locations on image 360 ​​to establish the behavior control area. User 30 can select point 366, for example, along the representation 368 of the boundary of the behavior control area. Alternatively, user 30 can select a point and then, for example, use the touchscreen of mobile device 188 to drag their finger to define the area defining the behavior control area.

[0134] In some implementations, the behavior control area, manually selected by the user, can be adjusted by the computing system to conform to the characteristics of the environment. For example, see reference... Figure 15A User 30 manually defines a behavior control zone 369. User 30 can define behavior control zone 369 to cover an area 370 in a corner of the room. Due to factors such as user error or inaccuracy, the manually defined behavior control zone 369 may not cover the entire area. (See reference) Figure 15B The behavior control zone 369 is updated to conform to the geometry of area 370 in a corner of the room. The edges of the behavior control zone 369 can be updated to align with the edges of the room walls and obstacles within the room. The edges of the behavior control zone 369 can also be updated to align with the edges of non-movable parts of the environment, such as walls and obstacles. Based on the user's initial definition of the behavior control zone 369 and based on features in the environment near the behavior control zone 369, the mobile device 188 (or other device) can determine the user's expected range for the behavior control zone 369. The user 30 can confirm the updated behavior control zone 369 by selecting the confirmation button 372. In some implementations, the user defines the behavior control zone to cover carpet tiles or other features within the room. This feature may be surrounded by a passable area. The edges of the behavior control zone can be updated to match the edges of the feature within the room.

[0135] In further examples, refer to Figure 16A User 30 can manually define a behavior control zone 374 that unintentionally spans multiple rooms, such as a first room 376 and a second room 378. Mobile device 188 (or other device) can determine the user's intended range for the behavior control zone 374 and determine that user 30 only intends to define the behavior control zone 374 as spanning the first room 376. For example, mobile device 188 can determine that the portion of the behavior control zone 374 in the first room 376 is greater than 70%, 80%, or 90% of the total area covered by the behavior control zone 374. Alternatively, mobile device 188 can determine that the portion of the behavior control zone in the second room 378 is less than 20%, 10%, or 5% of the total area covered by the behavior control zone 374. In this regard, refer to... Figure 16B The mobile device 188 can update the behavior control area 374 to capture features of the first room 376, such that the behavior control area 374 extends only through the first room 376 and not through the second room 378. For example, the behavior control area 374 can conform to a wall or other obstacle in the first room 376. The user 30 can confirm the updated behavior control area 374 by selecting a confirmation button 380.

[0136] In further examples, refer to Figure 17A User 30 can manually define behavior control zone 382, ​​which will prevent robot 100 from traversing a portion of the environment. (See reference) Figure 17B The mobile device 188 may display an identifier 384 indicating an environmental portion that the robot 100 cannot access. The mobile device 188 may also display a warning 386 indicating to the user 30 that the robot 100 will be unable to reach a room or part of a room for a behavior control zone 382 defined in a manner proposed by the user 30. The user 30 can confirm the selection by pressing a confirmation button 388 or return to the step of redefining the behavior control zone 382 to redefine it. In some embodiments, the mobile device 188 (or other device) may recommend behavior control zones that will not prevent the robot 100 from reaching certain parts of the environment.

[0137] The robots and technologies described herein, or parts thereof, can be controlled by a computer program product comprising instructions stored on one or more non-transitory machine-readable storage media, and these instructions can be executed on one or more processing devices to control (e.g., coordinate) the operations described herein. The robots and parts thereof described herein can be implemented as all or part of a device or electronic system that may include one or more processing devices and a memory for storing executable instructions to perform various operations.

[0138] The operations associated with implementing all or part of the robot manipulation and control described herein can be performed by one or more programmable processors that execute one or more computer programs to perform the functions described herein. For example, mobile devices, cloud computing systems configured to communicate with mobile devices and autonomous cleaning robots, and robot controllers can all include processors programmed with computer programs to perform functions such as transmitting signals, calculating estimates, or interpreting signals. Computer programs can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as standalone programs or as modules, components, subroutines, or other units suitable for use in a computing environment.

[0139] The controllers and mobile devices described herein may include one or more processors. For example, processors suitable for executing computer programs include general-purpose and special-purpose microprocessors, as well as any one or more processors of any kind of digital computer. Typically, the processor receives instructions and data from read-only memory or random access memory, or both. The components 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 will also include one or more machine-readable storage media, such as mass-produced PCBs for storing data, such as magnetic disks, magneto-optical disks, or optical disks, or operatively coupled to one or more machine-readable storage media to receive data from, transfer data to, or both of the one or more machine-readable storage media. Machine-readable storage media suitable for containing computer program instructions and data include all forms of non-volatile storage areas, such as semiconductor storage area devices, such as EPROM, EEPROM, and flash memory storage area devices; magnetic disks, such as internal hard disks or removable disks; CD-ROMs; and DVD-ROMs.

[0140] The robot control and manipulation techniques described herein can be applied to control other mobile robots besides cleaning robots. For example, lawn mowing robots or space monitoring robots can be trained to perform operations in specific parts of a lawn or space, as described herein.

[0141] Elements of the different embodiments described herein can be combined to form other embodiments not specifically described above. Elements can be excluded from the structures described herein without adversely affecting their operation. Furthermore, various individual elements can be combined into one or more individual elements to perform the functions described herein.

[0142] Many embodiments have been described. However, it should be understood that various modifications can be made. Therefore, other embodiments are also within the scope of the claims.

Claims

1. An autonomous mobile robot, comprising: The drive system is configured to navigate the robot on a surface; A sensor system is configured to generate a signal representing the position of the robot on the surface; A controller, operably connected to the drive system and the sensor system, is configured to execute instructions to perform operations, including: Receive information representing the behavior control area on the surface; The robot is manipulated to move on the surface using the drive system; Based at least on the signal indicating the robot's position and the information indicating the behavior control area, it is identified during the manipulation that the robot is located within a buffer zone surrounding the behavior control area, wherein the buffer zone includes a region outside the boundary of the behavior control area; and An action is initiated in response to the recognition that the robot is located within the buffer.

2. The robot of claim 1, wherein the operation further includes selecting the size of the buffer.

3. The robot of claim 2, wherein selecting the size of the buffer includes selecting the size of the buffer during the manipulation.

4. The robot of claim 3, wherein the operation further includes: During the manipulation, the robot's position is estimated based at least on signals generated by the sensor system; as well as Calculate the uncertainty associated with the estimated position of the robot. The selection of the size of the buffer during the manipulation includes selecting the size based at least on the uncertainty associated with the estimated position of the robot.

5. The robot of claim 2, wherein selecting the size of the buffer includes selecting the size based at least on the uncertainty associated with the estimation of the robot's position.

6. The robot of claim 5, wherein the selected size of the buffer is proportional to the uncertainty associated with the estimation of the robot's position.

7. The robot of claim 2, wherein selecting the size of the buffer includes: Receive a signal corresponding to the user's selection of the size of the buffer, and The size of the buffer is selected based at least on the received signal.

8. The robot of claim 1, wherein the behavior includes: Avoid entering the behavior control area; Adjust the robot's moving speed; or Adjust the robot's direction of movement.

9. The robot of claim 1, further comprising a vacuum system for cleaning the surface, wherein the action includes adjusting the vacuum power supplied to the vacuum system.

10. The robot of claim 1, further comprising a light indicator system, wherein the controller is operatively connected to the light indicator system, and the operation includes activating the light indicator system in response to the robot approaching the behavior control area.

11. The robot of claim 10, wherein activating the light indicator system in response to the robot approaching the behavior control area comprises operating the light indicator system to indicate the orientation of the behavior control area relative to the robot's position.

12. The robot of claim 1, wherein the operation further comprises: Transmit map drawing data so that the mobile device can display a map of the surface; as well as Receive user instructions from the mobile device for establishing the behavior control area.

13. The robot of claim 12, wherein the operation further comprises: Receive user instructions from the mobile device for establishing the buffer.

14. The robot of claim 1, wherein the information representing the behavior control area on the surface corresponds to a user selection and is received prior to the manipulation; and wherein the buffer is established by the robot during the manipulation.

15. The robot of claim 1, wherein the buffer zone includes a perimeter offset outward from the perimeter of the behavior control area.

16. The robot of claim 1, wherein the buffer corresponds to an area with a fixed size.

17. The robot of claim 1, wherein the buffer corresponds to a region having a variable size.

18. A method comprising: A map is displayed on a monitor, the map including a representation of the perimeter of a surface in the environment; Receive one or more user instructions, wherein the one or more user instructions include user instructions for establishing a behavior control area on the surface; and Data representing the behavior control area is transmitted to the autonomous mobile robot so that the robot initiates an action in response to determining that the robot is located within a buffer zone surrounding the behavior control area, wherein the buffer zone includes a region outside the boundary of the behavior control area.

19. The method of claim 18, wherein receiving the one or more user instructions includes receiving user instructions for establishing the buffer zone around the behavior control area.

20. The method of claim 18, wherein receiving the one or more user instructions includes receiving a user selection for the size of the buffer.

21. The method of claim 18, wherein receiving the one or more user instructions includes receiving an instruction for establishing the buffer at a fixed size.

22. The method of claim 18, wherein receiving the one or more user instructions includes receiving an instruction for establishing the buffer with a variable size.

23. The robot of claim 1, wherein the region outside the boundary of the behavior control area is adjacent to the behavior control area.

24. The robot of claim 1, wherein the outer perimeter of the region outside the boundary of the behavior control area is defined at least in part as an offset of the boundary of the behavior control area.