Wall tracking robot
By designing a wall tracking robot, using buffers and sensor systems, the robot can stably track and clean the surface of the intersection of wall obstacles, solving the problem of difficult corners and gaps in the prior art, and achieving efficient wall obstacle cleaning.
Patent Information
- Application Number
- CN202011074546.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2015-04-09
- Filing Date
- 2015-07-10
- Publication Date
- 2025-05-23
- Estimated Expiration
- 2035-07-10
AI Technical Summary
Existing mobile robots have difficulty effectively tracking and cleaning surfaces that intersect with wall obstacles, especially in corners and gap areas.
A wall tracking robot is designed with buffer and sensor systems that enable the robot to maintain contact with the wall surface and by adjusting the rotation and translation speeds, the buffer is kept in a partially compressed position to ensure that the cleaning pad remains in contact with the wall surface.
The robot can effectively track and clean the hard-to-reach corners and gaps, and improve cleaning efficiency.
Smart Images

Figure CN112445228B_ABST
Abstract
Description
[0001] This application is a divisional application of the Chinese invention patent application (application number: 201510405184.4, application date: July 10, 2015, invention name: wall tracking robot). Technical Field
[0002] The present invention generally relates to controlling motion of a robot to track obstacles such as walls during motion. Background Art
[0003] Mobile robots can be used to traverse surfaces to perform various operations, such as cleaning, vacuuming, etc. Obstacles such as walls, fixtures, etc. may make it difficult for some mobile robots to reach certain areas. For example, surfaces adjacent to the intersection between a wall and a floor are difficult for a robot to traverse. Summary of the invention
[0004] The example robot can maintain contact with the wall surface when the robot performs wall tracking behavior. As the robot tracks the wall surface, sensors associated with the robot's bumper can continuously enable contact between the robot's cleaning pad and the wall surface. The sensor can also detect when the bumper is not in contact with the wall surface so that the robot can adjust its own direction to continue tracking the wall surface.
[0005] An example robot includes: a body movable relative to a surface; a bumper mounted on the body to move the bumper relative to the body; a sensor that generates a signal in response to movement of the bumper relative to the body caused by contact between the bumper and the surface; and a controller that controls movement of the body based on a value to cause the body to track the surface. The bumper is movable between an uncompressed position relative to the body and a compressed position relative to the body. The signal varies linearly with movement of the bumper relative to the body. The value is based on the signal and indicates that the bumper in a partially compressed position has a compression range between the uncompressed position and the compressed position. The example robot may include one or more of the following features, alone or in combination.
[0006] The surface may include a wall surface. The configuration of the controller controlling the movement of the body may include a configuration to maintain the robot in contact with the wall surface at an angle between about 3 degrees and about 20 degrees. The robot may include a cleaning pad attached to the bottom of the body and a fluid applicator configured to dispense fluid from the robot. The cleaning pad may extend beyond the buffer.
[0007] The configuration of the controller to control the motion of the body so that the body tracks the surface may include a configuration to cause the robot to perform a wall following behavior, wherein the controller controls the motion of the body so that the body contacts the wall surface at an angle such that the bumper is in a partially compressed position, and the controller adjusts the rotational and translational speeds of the robot to maintain compression of the bumper in the partially compressed position. The configuration of the controller to control the motion of the body so that the body tracks the surface may include a configuration to cause the robot to maintain contact of the cleaning pad with the wall surface during the wall following behavior.
[0008] The sensor may be a first sensor and the signal may be the first signal. The robot may include a second sensor to generate a second signal in response to movement of the bumper. The second signal may vary linearly with movement of the bumper. The controller may be programmed to calculate a value based on a first value and a second value, the first value being based on the first signal and the second value being based on the second signal.
[0009] The body may have a left side, a right side, a front, and a back. The first sensor may be adjacent to the right side and the second sensor may be adjacent to the left side. The bumper may be placed along the front of the robot and partially extend along the left and right sides. The robot may include a third sensor to generate a third signal responsive to movement of the bumper. The third signal varies linearly with movement of the bumper. The third sensor may be between the left and right sides, and the third sensor is adjacent to the front.
[0010] The sensor may be or include a post mounted to the bumper, a magnet mounted to the post, and a Hall effect sensor mounted on the magnet in the body. The sensor may be or include a capacitive sensor. The capacitive sensor may include a pair of capacitive plates. Based on the movement of the bumper, at least one capacitive plate may move relative to another capacitive plate. The controller may be programmed to determine a time constant from a signal generated in response to the movement of at least one capacitive plate. The sensor may be or include an inductive sensor. The inductive sensor may include a core material that is movable in a winding based on the movement of the bumper. The controller may be programmed to determine a time constant from a signal in response to the movement of the core material.
[0011] The surface may include a wall of a room, and the controller may be programmed to control the movement of the body to track the wall surface to maintain contact with the wall by maintaining a value within a compression range. In response to the bumper being within a predetermined range of uncompressed positions, the controller may be programmed to dynamically calibrate the position of the bumper relative to the body. In response to a value outside the compression range and indicating that the bumper is compressed further than an amount of compression associated with the compression range, the controller may be programmed to control the movement of the body to withdraw the body from the surface. In response to a value outside the compression range and indicating that the bumper is compressed less than an amount of compression associated with the compression range, the controller may be programmed to control the movement of the body to turn the body toward the surface.
[0012] The body may include wheels, and the robot may include detectors associated with the wheels. The detectors may be used to detect a speed of the wheels. Based at least in part on the wheel speed being less than a predetermined speed and a value outside a compression range, the controller may be programmed to control the movement of the body so that the body withdraws from the surface, rotates away from the surface, and then reengages the surface. The controller may be programmed to cause the body to track the surface at an angle. The controller may be programmed to adjust the angle based on the value.
[0013] Another example robot may include: a body that is movable relative to a surface; a bumper mounted on the body to enable movement of the bumper relative to the body; a linear sensor that generates a signal in response to movement of the bumper relative to the body caused by contact between the bumper and the surface for a period of time; and a controller that generates one or more control signals based on the signal generated by the linear sensor. The signal varies linearly with the movement of the bumper. The one or more control signals are used to control the movement of the body to track the surface at least for a period of time. The example robot may include one or more of the following features, alone or in combination.
[0014] The surface may include a wall surface. The configuration of the controller controlling the movement of the body may include a configuration to maintain the robot in contact with the wall surface at an angle between about 3 degrees and about 20 degrees. The robot may include a cleaning pad attached to the bottom of the body and a fluid applicator configured to dispense fluid from the robot. The cleaning pad may extend beyond the buffer.
[0015] The configuration of the controller to control the movement of the body so that the body tracks the surface may include configuration to cause the robot to perform a wall following behavior, wherein the controller controls the movement of the body so that the body contacts the wall surface at an angle such that the bumper is in a partially compressed position, and the controller adjusts the rotational and translational speeds of the robot to maintain compression of the bumper in the partially compressed position. The configuration of the controller to control the movement of the body so that the body tracks the surface may include configuration to cause the robot to maintain contact between the cleaning pad and the wall surface during the wall following behavior.
[0016] The linear sensor may include a first linear sensor and a second linear sensor. The first linear sensor may be disposed adjacent to a first side of the main body, and the second linear sensor may be disposed adjacent to a second side of the main body. The linear sensor may include a third linear sensor disposed between the first linear sensor and the second linear sensor.
[0017] Each linear sensor may include a post mounted to the buffer, a magnet mounted to the post, and a Hall effect sensor on the magnet mounted in the body. Each linear sensor may be or include a capacitive sensor. The capacitive sensor may include a pair of capacitor plates. Based on the movement of the buffer, at least one capacitor plate may move relative to another capacitor plate. The controller may be programmed to determine a time constant from a signal generated in response to the movement of at least one capacitor plate. Each linear sensor may be or include an inductive sensor. The inductive sensor may include a core material that may move in a winding based on the movement of the buffer. The controller may be programmed to determine a time constant from a signal in response to the movement of the core material.
[0018] An example method of controlling a robot includes: determining a contact level between the robot and a surface exceeding a threshold based on at least one signal that varies linearly with a force magnitude between the robot and the surface; and controlling the robot to track the surface to maintain at least one contact level between the robot and the surface exceeding the threshold. The example method may include one or more of the following features, alone or in combination.
[0019] The threshold may be a lower threshold. The method may include: determining based on the at least one signal that a magnitude of a force between the robot and the surface exceeds an upper threshold, wherein the upper threshold is greater than the lower threshold, and in response to determining that the magnitude of the force between the robot and the surface exceeds the upper threshold, controlling the robot to withdraw from the surface.
[0020] The robot may include wheels. The method may include detecting a speed of the wheels and, based at least in part on the speed of the wheels, controlling the robot to withdraw from the surface, rotate away from the surface, and then reengage the surface.
[0021] The determining may be based on two or more signals that vary linearly with the magnitude of the force between the robot and the surface. The method may include controlling an angle at which the robot engages the surface based at least in part on the two or more signals.
[0022] Advantages of the example robots and methods described herein may include, but are not limited to, the following. In one example, the robot can clean gaps, corners, and other areas that may be difficult to reach and may accumulate debris. In one example, the robot can clean a room with a geometric configuration formed by walls and room obstacles. In one example, the robot has a geometric configuration that can cause the robot to miss the cleaning area of the room. In such an example, the robot can perform wall tracking to enter areas that other movements and cleaning patterns may miss during the cleaning operation.
[0023] Any two or more features described in this specification and included in the Summary of the Invention section may be combined to form embodiments not specifically described in the text.
[0024] The robots and techniques described herein, or portions thereof, may be controlled by a computer program product that includes instructions stored in one or more non-transitory computer-readable storage media and executable on one or more processing devices to control (e.g., coordinate) the operations described herein. The robots described herein, or portions thereof, may be implemented as all or part of an apparatus or electronic system that may include one or more processing devices and memory to store executable instructions to perform various operations.
[0025] The details of one or more embodiments are set forth in the accompanying drawings and the description herein. Other features and advantages will be apparent from the description and drawings, and from the claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0026] Figure 1A is a perspective view of the mobile robot.
[0027] Figure 1B yes Figure 1A Side view of the mobile robot.
[0028] Figure 1C yes Figure 1A Top view of the mobile robot.
[0029] Figure 1D is with Figure 1A An overhead view of a cleaning pad used with a mobile robot.
[0030] Figure 1E is a top view of the attachment mechanism of the cleaning pad.
[0031] Figure 1F yes Figure 1A An exploded perspective view of a mobile robot.
[0032] Figure 1G is from Figure 1A A perspective view of the mobile robot with the top removed.
[0033] Figure 1H is from Figure 1A A perspective view of the mobile robot with the top removed.
[0034] FIG. 2A to FIG. 2C is a top view schematic diagram of a bumper of a mobile robot contacting a wall surface.
[0035] Figure 3A is a top view of the mobile robot showing the mobile robot scrubbing a floor surface.
[0036] Figure 3B is a top view of a mobile robot executing a cornrow pattern to clean a room.
[0037] Figure 3C Mobile cleaning Figure 3B An overhead view of the room surroundings.
[0038] Figures 3D to 3H is a top view of an example mobile robot cleaning a room with obstacles.
[0039] Figure 4 yes Figure 1A Schematic diagram of the architecture of an example mobile robot controller.
[0040] FIG. 5A to FIG. 5F A mobile robot is shown cleaning an inside corner.
[0041] FIG. 6A to FIG. 6E A mobile robot is shown cleaning an outer corner of a perimeter.
[0042] FIG. 7A to FIG. 7D An example of a mobile robot that cleans a wall surface is described.
[0043] Figure 8 is a flow chart illustrating a process performed by a mobile robot to track a wall surface.
[0044] The same reference numbers in different drawings denote the same elements. DETAILED DESCRIPTION
[0045] Described herein is an example robot configured to traverse a surface such as a floor, carpet, grass, or other material. The example robot can be configured to perform various operations on the surface, including but not limited to vacuuming, wet or dry cleaning, wet cleaning, polishing, etc.
[0046] An open area of a surface can be traversed in a pattern or randomly. Walls or other obstacles (e.g., having vertical surfaces) may affect how the robot traverses the surface. For example, a surface adjacent to a wall is difficult to reach using a pattern or random traversal. Therefore, the example robot described in this article uses a wall tracking (also called tracking) technology that enables the robot to traverse a surface adjacent to a wall or other obstacle. The example tracking technology described in the article includes using a linear sensor to sense the force between the robot and the wall, and controlling the robot to track the movement of the wall in response to the sensed force. In some embodiments, the movement of the robot is controlled based on the measured magnitude of the force between the robot and the wall so that the measured force remains within a target range. For example, the robot can contact the wall at a certain angle (e.g., between 5 degrees and 10 degrees) so that the buffer is partially compressed due to friction between the wall and the buffer. Other embodiments are also described.
[0047] The example tracking techniques described herein may be used with any suitable type of robot or other device that encounters walls or other obstacles in its operation. An example of a robot that employs the tracking techniques is a mobile robot that is able to navigate around a room to clean the floor surfaces of the room. Figure 1A In some embodiments, the mobile robot 100 navigates and cleans a floor surface 10 of a room having a side wall surface 20. In some embodiments, the robot weighs less than 5 pounds (e.g., less than 2.26 kg) and has a center CG. In some embodiments, the mobile robot can be autonomous. The robot 100 includes a wheel (at Figure 1A The robot body 102 is a body 102 supported by a wheel (not visible in the figure), for example, the wheels are capable of maneuvering the robot 100 across the floor surface 10 based on drive instructions having x, y and θ components. As shown, the robot body 102 has a square shape and defines an X-axis and a Y-axis. The X-axis defines a direction R to the right of the robot 100 and a direction L to the left of the robot 100. The Y-axis defines a direction A (backward) to the rear of the robot 100 and a direction F to the front of the robot 100. In other embodiments, the body 102 can have other shapes, such as round, oval, surface drop spot, rectangular, a combination of square or rectangular in the front and round in the back, or a longitudinally asymmetric combination of any of these shapes. The body 102 includes a bottom (not shown) and a top 108.
[0048] Along the bottom of the robot body 102, one or more rear overhang sensors (not shown) located at one or both of the two rear corners of the robot 100 and one or more front overhang sensors (not shown) located at one or both of the front corners of the mobile robot 100 detect overhangs or other steep steps of the floor surface 10 and prevent the robot 100 from falling off the edge of the floor. The overhang sensors can be mechanical drop sensors or light-based proximity sensors, such as IR (infrared) pairs, dual transmitters, single receivers, or dual receivers, single transmitter IR light-based proximity sensors, which aim downward at the floor surface 10.
[0049] The body 102 carries a movable bumper 110 for detecting collisions in the longitudinal (A, F) or lateral (L, R) directions. The bumper 110 is mounted to the front side 102F of the robot body 102 and is wrapped around the right side 102R and the left side 102L of the robot body 102. The bumper 110 has a shape that complements the robot body 102 and extends the robot body 102 forward. The bumper 110 includes an extended lower portion 111 so that the overall dimension of the front side 102F is wider than the rear side 102A of the robot body 102. The robot body 102 supports the bumper 110 so that the bumper 110 can translate and rotate relative to the robot body 102. Therefore, the right portion 110R and the left portion 110L of the bumper 110 can move in different directions. As will be described in greater detail herein, the left and right bumper sensor assemblies 112L, 112R are positioned in the robot 100 such that the left bumper sensor assembly 112L is capable of detecting movement of the left portion 110L of the bumper 110, and the right bumper sensor assembly 112R is capable of detecting movement of the right portion 110R of the bumper 110. The right bumper sensor assembly 112R is located adjacent to the right side of the robot body 102. The left bumper sensor assembly 112L is located adjacent to the left side 102L of the robot body 102. Generally, the bumper sensor assemblies 112L, 112R may be linear sensor assemblies that provide an analog signal that is linear with respect to the force on the bumper 110. In certain embodiments, as described herein, additional sensor assemblies may be included in the robot, such as between the left and right sensor assemblies.
[0050] In some examples, the use of a linear sensor that provides an analog sensor can provide various advantages. For example, a linear sensor provides a signal that varies with the degree of compression of the buffer. If the buffer is compressed to a position halfway between an uncompressed position and a fully compressed position, the voltage or current value from the sensor will be half of the value when the buffer is fully compressed.
[0051] Reference Figure 1B, the bottom of the robot body 102 includes an attached cleaning pad 120. The bottom of the robot body includes wheels 121 that can rotatably support the rear 106 of the robot body 102 when the robot 100 navigates about the floor surface 10. Each wheel 121 can operate with a current sensor 123 that determines the current delivered to each wheel 121. Each wheel 121 can also be associated with and operate with an encoder that determines the position of each wheel 121. The encoder is an optional encoder that detects the rotational position of the wheel 121. Based on the rotational position, the controller of the robot 100 can determine the acceleration and / or speed of the wheel 121. When the robot 100 navigates about the floor surface 10, the cleaning pad 120 supports the front of the robot body 102. The current sensor 123 and the encoder together can sense the moment when the wheels of the robot 100 are driven without the robot moving in the forward drive direction F.
[0052] The reservoir 122 in the robot body 102 holds a cleaning fluid 124 (e.g., cleaning solution, water, and / or detergent). In some examples, the capacity of the reservoir 122 is 170 mL to 230 mL or approximately 200 mL. The robot 100 includes a fluid applicator connected to the reservoir 122 via a tube in the robot body 102. In some examples, the fluid applicator 126 can be a sprayer or a spray mechanism.
[0053] The top 108 of the robot 100 may include a handle 135 for carrying the robot 100 between users. When folded, the handle 135 is placed in a recessed position in the top 108 of the robot 100. The top 108 may also include a toggle button 136 disposed below the handle 135, which may activate a release mechanism for the pad. The user may also press a clean button 140 to turn on the robot 100 and instruct the robot 100 to begin a cleaning operation. The clean button 140 may also be used for other operations of the robot, such as turning off the robot 100 and / or establishing a virtual blocking position.
[0054] Reference Figure 1CIn some cases, the cleaning pad 120 may extend beyond the width of the buffer 110 so that the robot 100 can position the outer edge of the pad 120 upward and along a hard reach surface or into a gap, such as a wall-floor interface 30. In some examples, the cleaning pad 120 extends beyond the body 102 of the robot 100 by approximately 0.1 mm to 10 mm (e.g., 0.5 mm to 2 mm, 1 mm to 3 mm, 1 mm to 5 mm, 2 mm to 5 mm, 3 mm to 6 mm, 5 mm to 10 mm, about 1 mm, about 5 mm, about 10 mm). In such an embodiment, the end of the cleaning pad 120 contacts the wall surface 20, and as described herein, the buffer 110 may be caused to move due to friction on the cleaning pad 120. In one embodiment, the cleaning pad 120 extends upward to the edge and does not extend significantly beyond the pad holder (not shown) of the robot. In this case, the buffer 110 contacts the wall surface 20 and moves due to friction between the buffer and the wall surface 20.
[0055] The robot 100 can push the edge of the pad 120 against a wall surface or other vertically extending surface. The positioning of the cleaning pad 120 also allows the cleaning pad 120 to clean a surface or a gap in a wall or other vertically extending surface by the extended edge of the cleaning pad 120 when the robot 100 moves in a period of wall following motion. Thus, the extension of the cleaning pad 120 enables the robot 100 to clean in cracks and crevices that are beyond the reach of the robot body 102. As described herein, when the robot 100 initiates a wall following pattern or behavior along a room side surface (e.g., wall surface 20), the cleaning pad 120 can be pressed against the wall surface 20 so that debris placed along the wall-floor interface 30 can be picked up by the cleaning pad 120.
[0056] Reference Figure 1D In one example, the cleaning pad 120 includes an absorbent layer 152, an outer wrapping layer 154, and a card back 156. The pad 120 has bluntly cut ends 158 so that the absorbent layer 152 is exposed at both ends of the pad 120, and the entire length of the pad 120 can be used to absorb fluid and clean. The absorbed cleaning fluid can be firmly held by the absorbent layer 152 so that the cleaning fluid does not drip from the cleaning pad 120. In some cases, the cleaning pad 120 is disposable. In other cases, the cleaning pad 120 is a reusable (e.g., machine washable) microfiber cloth pad with a durable plastic backing.
[0057] In addition, refer to Figure 1E, the cleaning pad 120 can be fixed to the bottom of the robot 100 by the pad holder 160. The pad holder 160 can firmly hold the cleaning pad 120 in a certain position by grasping the card back 156. The cleaning pad 120 can be installed to the pad holder 160 from any two identical directions (180 degrees opposite each other). When using the toggle button 136 ( Figure 1A The pad holder 160 may release the cleaning pad 120 when the pad release mechanism 162 is triggered (as shown in FIG. 1 ).
[0058] Reference Figures 1F to 1H The support 164 traverses the robot body 102 to attach the buffer chassis 171 of the buffer 110 to the robot body 102. The buffer chassis 171 is fixed to the buffer 110 (e.g., using fasteners). Figure 1G , the support post 164 is inserted into the hole 166 defined by the robot body 102. The support post 164 may have a cross-sectional diameter that varies along its length and is also sized to fit in the hole 166 defined by the robot body 102. The support post 164 may be made of a plastic material (e.g., an elastomer or other resilient material). The material of the support post 164 allows the bumper 110 and the bumper chassis 171 to move relative to the robot body 102 when contact is made between the bumper 110 and an obstacle or a vertically oriented or extended surface in the environment.
[0059] Reference Figure 1H , the robot 100 includes a left sensor assembly 112L and a right sensor assembly 112R to detect movement of the bumper 110 relative to the robot body 102. In some embodiments, additional sensor assemblies (multiple) may be included, for example, a center sensor assembly (described herein). In some embodiments, the left and right sensor assemblies 112L, 112R include linear sensors. In some embodiments, the linear sensor has a response to the applied force that is linear within at least a limited range. In some embodiments, the response may be linear over the entire range of the applied force, while in other embodiments, the response may be linear only within a limited range of the applied force. In other embodiments, nonlinear sensors may be used and the signals from the nonlinear sensors may be remapped by, for example, a controller of the robot to calculate an estimate of the applied force relative to the signal amplitude. Example linear sensors include Hall effect sensors, capacitive sensors, or inductive sensors. Any suitable type of linear sensor may be used. The following example expresses the use of a Hall effect sensor, which may be a transducer that changes its output voltage in response to a magnetic field. The Hall effect sensor may operate as an analog transducer that directly returns an analog voltage signal in response to a magnetic field. With a known magnetic field, the distance to the Hall plate can be determined and the relative position of the magnet can be deduced based on the measured voltage.
[0060] Reference Figure 1F , the buffer chassis 171 includes a left base or pillar 168L to which a left magnet 170L is mounted and positioned. The left magnet 170L forms a portion of the left buffer sensor assembly 112L described above. The buffer chassis 171 also includes a right pillar 168R and a right magnet 170R for the right buffer sensor assembly 112R. The magnet 170L can be coupled to the pillar 168L of the buffer chassis 171, which allows the magnet 170L to move relative to the robot body 102 of the robot 100.
[0061] return Figure 1H , in this example, the platform 172 is fixed to the robot body 102. When the buffer 110 moves relative to the robot body 102, the buffer chassis 171 fixed to the buffer 110 also moves relative to the platform 172. The buffer chassis 171 can also be attached to the resilient support 164 to eliminate the dynamic response of the buffer 110 (e.g., in response to forces from contact with obstacles in the environment), dissipate kinetic energy of the buffer, and absorb mechanical shock.
[0062] In some embodiments, the platform 172 includes a circuit board 174 that includes a left Hall effect sensor 176L and a right Hall effect sensor 176R. In some embodiments, the bumper sensor assemblies 112L and 112R include a first component that is attached to the robot body 102 (e.g., sensors 176L, 176R) and a second component that is attached to the bumper 110 via the bumper chassis 171 (e.g., magnets 170L, 170R). Return Figure 1C , the left bumper sensor assembly 112L includes a left sensor 176L coupled to the robot body 102 and a left magnet 170L coupled to the left portion 110L via the bumper chassis 171. The right bumper sensor assembly 112R includes a right sensor 176R coupled to the robot body 102 and a right magnet 170R coupled to the right portion 110R of the bumper 110 via the bumper chassis 171. The left sensor 176L is positioned on or near the left side 102L of the robot body 102 and above the left magnet 170L. The right sensor 176R is positioned on or near the right side 102R of the robot body 102 and above the right magnet 170R. The Hall effect sensors 176L and 176R generate a voltage in response to a nearby magnetic field, such as the magnetic field generated by the magnets 170L and 170R.
[0063] The configuration of the left and right bumper sensor assemblies 112L and 112R allows the left and right sensors 176L and 176R to detect the movement of the magnets 170L and 170R relative to the sensors 176L and 176R. The magnets 170R and 170L generate a magnetic field whose strength changes at the location of the sensors 176R and 176L when the magnets 170R and 170L move away from or closer to the sensors 176R and 176L. In turn, the left and right sensors 176L and 176R generate a voltage in response to the movement of the left and right magnets 170L and 170R relative to the left and right sensors 176L and 176R, respectively. The voltage changes linearly with the change in the magnetic field. Therefore, the sensors 176L and 176R provide an analog response signal that changes based on the degree to which the bumper 110 is depressed. When the magnets 170L and 170R move away from their respective sensors 176L and 176R, the strength of the magnetic field at the location of the sensors 176L and 176R weakens, and thus the sensors 176L and 176R generate a smaller voltage. Conversely, when the magnets 170L and 170R move closer to their respective sensors 176L and 176R, the strength of the magnetic field at the location of the sensors 176L and 176R increases, and thus the sensors 176L and 176R generate a larger voltage. Once the sensors 176L and 176R are coupled to the robot body 102 and the magnets 170L and 170R are coupled to the bumper 110, the analog voltage generated by the sensors 176L and 176R corresponds to the movement of the bumper 110 relative to the robot body 102, which is due to, for example, contact of the bumper 110 with an obstacle such as a wall in the room. For example, friction between the wall and the bumper 110 causes the bumper 110 to move between an uncompressed and partially compressed position, causing the Hall effect sensor to record a voltage that varies linearly with the amount of compression experienced by the bumper due to the friction between the wall and the bumper. More specifically, the signal from the sensors 176L, 176R (e.g., the voltage of the sensors 176L, 176R) varies linearly with the movement of the bumper 110 relative to the robot body 102.
[0064] Although sensors 176L and 176R have been described as Hall effect sensors, in some embodiments, the sensors may be capacitive sensors such that the buffer sensor assembly operates based on a change in capacitance sensed by the capacitive sensor. For example, a capacitive plate may replace magnets 170L and 170R, and a corresponding pair of capacitive plates may replace Hall effect sensors 176L, 176R. The capacitance of the left and right plate pairs may be measured independently using various techniques, for example, by dynamically measuring electrical coupling by measuring an RC (resistance-capacitance) time constant. The capacitance of the left and right pairs may vary linearly based on the distance of the capacitive sensor from the capacitive plate. In some embodiments, sensors 176L, 176R may be inductive sensors. In this case, the capacitive plate on the circuit board is replaced with a spiral PCB (printed circuit board) trace that serves as an inductor. The buffer chassis 171 may include a core material (instead of magnets 170L and 170R) that passes through the spiral trace. When the buffer 110 is compressed, the amount of core material that crosses the spiral trace may vary, thereby resulting in a change in inductance. The inductance of these traces can be measured by measuring the inductive coupling, for example by dynamically measuring the LR (inductor-resistor) or LRC (inductor-resistor-capacitor) time constant with an oscillating circuit.
[0065] Although the left and right sensor assemblies 112L and 112R have been described above, in certain embodiments, the robot may additionally and / or alternatively include a front sensor assembly located between the left side of the robot and the right side of the robot. The front sensor assembly may be located adjacent to the front side of the robot and may be capable of generating signals in response to the bumper moving in, for example, a rightward direction R and a leftward direction L. Thus, the front sensor assembly may be capable of detecting the force of the bumper in a lateral direction.
[0066] Although the magnets 170R, 170L have been described as being fixed to the bumper 110 and the sensors 176R, 176L have been described as being fixed to the robot body 102, in some embodiments, the sensors may be fixed to the bumper and the magnets may be fixed to the robot body. In such embodiments, the sensors and magnets may be moved relative to each other to cause the magnetic field at the sensors to vary.
[0067] like Figure 2A , Figure 2B and Figure 2CAs shown, the neutral position 110N of the buffer 110 is shown in dashed lines. The neutral position 110N corresponds to the position of the buffer 110 before a force is applied to the buffer 110 to cause the buffer 110 to move (e.g., depress) relative to the robot body. As described in more detail herein, the neutral position 110N can change from one cleaning operation to another. During a cleaning operation, the robot 100 can calibrate the neutral position 110N so that the neutral position 110N is interpreted as a non-compressed state of the buffer 110. Compression of the buffer 110 is also interchangeably referred to herein as rearward translation of the buffer 110. Figure 2A , Figure 2B and Figure 2C The solid line depicting the bumper 110 corresponds to the position of the bumper 110 after the force causes the bumper to move relative to the robot body 102 .
[0068] The bumper 110 may move according to the direction and position of the force on the bumper 110 (eg, the relative direction and relative position of the obstacle in contact with the bumper 110). Figure 2A , when the right portion 110R and the left portion 110L move in the rearward direction A, the buffer 110 translates in the rearward direction A relative to the robot body 102. When the robot 100 moves in the forward direction F, contact between the front portion 110F of the buffer 110 and an obstacle such as the wall surface 20 may cause the buffer 110 to translate in the rearward direction A. Figure 2B , when the robot 100 encounters an obstacle on the left side of the robot body 102, the buffer 110 is depressed to a greater extent at the left portion 110L than at the right portion 110R. The left portion 110L moves in the rearward direction A, while the right portion 110R moves in the forward direction F or in the rearward direction A, so that the right portion 110R is depressed to a lesser extent than the left portion 110L. The buffer 110 translates in the rearward direction A or rotates counterclockwise relative to the robot body 102, so that, for example, the front of the cleaning pad is at a certain angle relative to the robot body 102. When the robot 100 moves in the forward direction F, the contact between the left portion 110L of the buffer 110 and the wall surface 20 may cause the clockwise rotation and backward translation of the buffer 110 due to, for example, friction between the left portion 110L and the wall surface 20. Refer to Figure 2C, when the robot 100 encounters an obstacle on the right side of the robot body 102, the buffer 110 is depressed to a greater extent at the right portion 110R than at the left portion 110L. The right portion 110R moves in the rearward direction A, while the left portion 110L moves in the forward direction F or the rearward direction A, so that the left portion 110L is depressed to a lesser extent than the right portion 110R. The buffer 110 translates rearwardly and rotates clockwise relative to the robot body 102, so that, for example, the front of the cleaning pad is at a certain angle relative to the robot body 102. When the robot 100 moves in the forward direction F, the contact between the right portion 110R of the buffer 110 and the wall surface 20 may cause the clockwise rotation and rearward translation of the buffer 110 due to, for example, friction between the right portion 110R and the wall surface 20. Referring to Figure 1H The left and right bumper sensor assemblies 112L and 112R can detect the left portion 110L and the right portion 110R described above relative to Figures 1A to 1C In other words, the left and right bumper sensor assemblies 112L and 112R may be configured to detect compression of the left and right portions 110L and 110R of the bumper 110.
[0069] Although the bumper 110 has been described as contacting an obstacle such as a vertical surface (eg, a wall) in the environment in order to move, in certain embodiments, the bumper 110 may also move due to contact of the cleaning pad with a surface in the environment.
[0070] The example robots described herein may traverse a surface by tracking a pattern, or by traversing a surface randomly. Example navigation behaviors of the robot may include a wall tracking pattern and an area coverage pattern. For example, the wall tracking pattern may be a straight motion pattern, and the area coverage pattern may be a vine pattern, a braid pattern, or any combination of these patterns. Other patterns are also possible.
[0071] In a linear motion pattern, the robot 100 generally moves in a straight path to track an obstacle defined by a vertical edge such as a wall. The linear motion pattern generally corresponds to a wall tracking behavior. The continuous and repeated use of a birdfoot pattern is referred to as a vine pattern or a vine pattern. In a vine pattern, the robot 100 performs a repetition of a birdfoot pattern, wherein the robot 100 moves back and forth while gradually advancing along a generally forward trajectory. Each repetition of the birdfoot pattern advances the robot 100 along a generally forward trajectory, and the repeated execution of the birdfoot pattern can allow the robot 100 to traverse the floor surface in a generally forward trajectory. In a braid pattern, the robot 100 moves back and forth across the room so that the robot 100 moves perpendicular to the longitudinal motion of each traversal of the room to form a pattern between a series of generally parallel rows across the floor surface. The robot 100 can perform navigation behaviors using vine and braid patterns when the robot 100 traverses the room and using linear motion patterns when the robot 100 moves about the perimeter of the room or the edge of an object in the room.
[0072] Reference Figure 3A In one example, the robot 100 moves in the bird's foot pattern mentioned above across the footprint area AF on the floor surface 10 to which the cleaning fluid 124 is applied. The depicted bird's foot pattern involves (i) moving the robot 100 in a forward direction F and a backward or reverse direction A along a central track 300, (ii) moving the robot 100 in a forward direction F and a reverse direction A along a left track 310, and (iii) moving the robot 100 in a forward direction F and a reverse direction A along a right track 305. The left track 310 and the right track 305 are arc-shaped, extending outwardly in an arc from a starting point along the central track 300. Although the right and left tracks 305, 310 have been described and shown as arc-shaped, in other embodiments, the left track and the right track can be straight track extending outwardly in a straight line from the central track.
[0073] exist Figure 3A In the example of FIG. 1 , the robot 100 moves from position A along the central trajectory 300 in the forward direction F. Subsequently, the robot 100 moves along the central trajectory in the backward direction A a distance equal to or greater than the distance covered by the applied fluid. For example, the robot 100 moves backward along the central trajectory 300 by at least one robot length L. RTo position G, which may be the same position as position A. The area to which the robot 100 applies the cleaning fluid 124 is substantially equal to or less than the footprint area AF of the robot 100. When the robot returns to the wall 20, the cleaning pad 120 passes through the cleaning fluid 124 and cleans the floor surface 10. From position B, the robot 100 retracts along the left track 310 or the right track 305, respectively, to position F or position D before reaching position E or position C. In some cases, positions C, E may correspond to position B. Subsequently, the robot 100 may continue to complete its remaining trajectory. Each time the robot 100 moves forward and backward along the center track 300, the left track 310, and the right track 305, the cleaning pad 120 passes through the applied fluid 124, scrubbing dirt, debris, and other particulate matter from the floor surface 10, and absorbing dirt fluid away from the floor surface 10. The scrubbing motion of the cleaning pad 120 combined with the solvent properties of the cleaning fluid 124 breaks down and releases dried stains and dirt. The cleaning fluid 124 applied by the robot 100 suspends the released debris so that the cleaning pad 120 absorbs the suspended debris and carries it away from the floor surface 10 .
[0074] Reference Figure 3B , the robot 100 can navigate in the room 320, tracing a path 325 that performs a combination of the vine pattern and the braid pattern described above to cover the floor surface 10 of the room. Each row of the braid pattern is separated from the adjacent row by a spacing of distance D. In this example, the robot 100 is operating in a cleaning mode that requires the use of a cleaning fluid 124, so the robot 100 applies the cleaning fluid 124 along the path 325 to fill the front of the robot 100. The robot 100 advances along the path 325 by performing a vine pattern, which includes a repetition of a bird's foot pattern along each length of the braid pattern. With each bird's foot pattern described as described herein, the robot 100 ends at a certain position, which is generally in a forward direction relative to its initial position.
[0075] The path 325 allows the robot 100 to clean an area 326 of the room, but the vines and braid pattern of the path 325 may cause the robot 100 to miss a cleaning area 327 of the room. The area 327 has a width W, for example, the area may be a narrow hallway. In some cases, the width W of the area 327 is less than two times the distance D between the rows of the braid pattern. Therefore, when the robot 100 performs the braid pattern, the robot 100 may contact the wall 20 without entering the area 327, and thus may not clean the area 327 simply using the braid pattern. As described herein, in some embodiments, the robot 100 can detect a doorway 328 or other narrow area having a width that is less than approximately the width of two robots that separate the area 327 from the rest of the room 320 based on the wall of the traced route.
[0076] The wall following behavior allows the robot 100 to clean along a wall / floor interface (e.g., the wall-floor interface 30 of FIG. 1 ), clean the corners of a room, and find and clean uncleaned areas adjacent to the wall surface 20, such as the area 327. Figure 3C , after performing cleaning of an area using the braid and vine patterns, the robot 100 can perform wall tracking to clean the perimeter of the room. The robot 100 tracks the path 350 as it performs a linear motion pattern by continuously engaging the wall surface 20 at a slight angle and with a relatively constant force applied to the robot 100. Once the robot 100 is operating in a cleaning mode using the cleaning fluid 124, the robot applies the cleaning fluid 124 to the front of the robot 100 along the path 350. In some examples, contacting the wall surface at a slight angle (e.g., the edge of the robot and the wall are not parallel to each other) can provide the advantage of pressing a portion of the cleaning pad against the wall surface so that the entire floor to the wall is cleaned by the cleaning pad. In some examples, contacting the wall surface at a slight angle can provide the advantage of allowing the robot to determine its position against the wall (e.g., with the pad extended to the wall) without causing contact and friction between the robot and the wall surface to prevent movement of the robot in the forward direction.
[0077] As described herein, wall tracking technology can allow the robot 100 to clean along the Figure 3B In some cases, simply performing the braid and vine behavior may cause the robot 100 to neglect to clean certain areas of the room, such as due to obstacles, room geometry, and the geometry of the robot 100. As the robot 100 tracks the wall surface 20, the robot 100 may enter an area 327 of the room 320, and the controller of the robot 100 may determine that the robot 100 did not clean the area 327 during an earlier execution of the braid and vine pattern. In some cases, when the area 327 is found, the robot 100 may perform a subsequent braid and vine pattern within the area 327. In other cases, the robot 100 may perform wall tracking, and the controller may determine that wall tracking with respect to the wall 20 of the area 327 is sufficient to clean the floor surface of the area 327.
[0078] Reference Figure 3DIn another example, the robot 100 navigates around a room 372 having an obstacle 375. The robot 100 performs a zone cleaning pattern, such as a braided pattern through the room 372, by tracing a path 380 to clean a zone 382 of the room 372. However, due to contact with the obstacle 375 (e.g., a toilet), rows 380A, 380B of the path 380 are shorter than other rows, and thus, the robot 100 does not clean a zone 384. Therefore, a later area accessible to the robot (e.g., the area 384) or an area obscured by an obstacle (e.g., the obstacle 375) can remain untraversed during a zone cleaning activity.
[0079] Reference Figure 3E , after the robot 100 completes the braid and vine path 380, for example, the robot 100 performs wall following by approaching the wall 20 of the room 372 and following the path 390 along the perimeter of the area 384. As the bumpers engage the wall 20 to clean along the wall 20 of the room 372, the robot 100 maintains contact with the wall 20 by maintaining the average bumper degree within a specified range. The path 390 allows the robot 100 to clean behind the obstacle 375, an area that the robot 100 previously could not reach in the braid and vine pattern.
[0080] In some cases, the area 384 may be large enough to warrant performing subsequent braid and vine patterns in the area 384. As the robot 100 cleans along the wall 20, the robot 100 may recognize that the boundary defined by the wall 20 may not match the boundary determined by the controller when the robot 100 performs the braid pattern. Subsequently, the robot 100 may continue to find the obstacle 375 and clean around the obstacle 375 by tracing the obstacle path 391. The robot 100 performs a wall tracking behavior along the side surface defined by the obstacle 375 so that the robot is able to clean the interface between the obstacle 375 and the floor surface 10.
[0081] Using the braid and vine patterns, the robot 100 cannot enter a passage that is only slightly larger than the width of the robot (e.g., 1 to 1.2 times, 1.2 to 1.4 times, 1.4 to 1.6 times, 1.6 to 1.8 times, 1.8 to 2 times). In another example, now referring to FIG. 3F to FIG. 3H , the robot 100 cleans an environment 392 having a first room 393 and a second room 394 separated by a doorway 395. The second room 394 is large enough to allow the robot 100 to perform the braid and vine patterns. Figure 3FAs shown, the robot 100 performs an area coverage pattern 396 such as a braid and vine pattern to clean a first room 393. Using the area coverage pattern 396, the robot 100 cannot clean a doorway 395 and a second room 394 because when the robot 100 performs a row 396a of the area coverage pattern, the robot 100 contacts the wall surface 20 of the environment 392 and cannot enter the second room 394 through the doorway 395. Each row of the braid pattern is spaced a certain distance D from the adjacent row. R , which is approximately the width of the robot 100. The doorway 395 has a width W D In some cases, the width W D is less than twice the distance D R .like Figure 3G As shown, upon completing the area coverage pattern 396 in the first room 393, the robot 100 performs a wall tracking pattern 397. The robot 100 tracking the wall tracking pattern 397 is able to travel through the doorway 395 and enter the second room 394. Figure 3H , the second room 394 is large enough that the robot 100 can execute the area coverage pattern 398 to clean the second room 394. Figure 3G When entering the second room 394 according to the wall tracking pattern 397 shown in FIG. 1 , the robot 100 executes the area coverage pattern 398 to clean the second room 394 .
[0082] Reference Figure 4 , an example of a control system 400 for the robot 100 includes a control circuit 405 (also referred to herein as a controller) that operates a drive 410, a cleaning system 420, a sensor system 430 having a buffer sensor system 435, a behavior system 440, a navigation system 450, and a memory 460.
[0083] The drive 410 may include wheels (e.g., Figure 1B The controller 405 may further include a navigation system 450 configured to manipulate the robot 100 about the floor surface. The navigation system 450 may be configured to manipulate the robot 100 about the floor surface based on the wheels 121 shown in the figure to manipulate the robot 100 across the floor surface based on drive instructions having x, y, and theta components. The wheels of the actuator 410 support the robot body above the floor surface. The controller 405 may further operate to configure a navigation system 450 to manipulate the robot 100 about the floor surface. The navigation system 450 is based on the navigation instructions on the behavior system 440, which may select navigation patterns or behaviors stored in the memory 460. The navigation system 450 also communicates with the sensor system 430 using the robot's collision sensors, accelerometers, and other sensors to determine and issue drive instructions to the actuator 410.
[0084] Sensor system 430 may also include sensors for wheels (e.g. Figure 1BThe controller 405 can utilize the linear acceleration sensed from the 3-axis accelerometer to infer deviations in the x and y directions and the 3-axis gyroscope to infer offsets in the heading or orientation of the robot 100. Thus, the controller 405 can combine the data collected by the rotary encoder, accelerometer, and gyroscope to generate an estimated value of the general posture (e.g., position and orientation) of the robot 100. In some embodiments, the robot 100 can use the encoder, accelerometer, and gyroscope to keep the robot 100 in a generally parallel row while the robot 100 performs a braided pattern. The gyroscope and rotary encoder together can also be used by the controller 405 to perform a dead reckoning algorithm to determine the position of the robot 100 in the environment. The sensor system 430 also includes sensors for the wheels 121 ( Figure 1B The controller 405 may use the current detected from the current sensor 123 to determine the amount of current delivered to each wheel 121 and subsequently estimate the speed of the wheel 121.
[0085] The cleaning system 420 operated by the controller 405 can start spraying instructions at a certain frequency for a certain period of time, for example. The spraying instructions can be issued according to the spraying schedule stored in the memory 460. The controller 405 can also operate the cleaning system 420 to vibrate the cleaning pad 120 to scrub the floor surface 10.
[0086] Bumper sensor system 435 of sensor system 430 includes bumper sensor assemblies 112L and 112R that detect contact of bumper 110 with an object in the environment. Controller 405 may execute bumper sensor system 435 by interpreting voltages generated by bumper sensor assemblies 112L and 112R.
[0087] return FIG. 2A to FIG. 2C Using the signals from the bumper sensor system 435, the controller 405 can determine the extent to which the left portion 110L of the bumper 110 is compressed (also referred to herein as the left bumper extent), and can determine the extent to which the right portion 110R of the bumper 110 is compressed (also referred to herein as the right bumper extent). In other cases, the bumper sensor system 435 can sense that the left portion 110L and the right portion 110R are in a compressed state, which may indicate contact with an obstacle in the forward direction F of the robot 100, such as Figure 2A The left buffer extent and the right buffer extent may be the amount of compression between the compressed state of the buffer 110 and the uncompressed state of the buffer 110, respectively.
[0088] return Figure 1H, the position of the magnets 170L and 170R relative to the sensors 176L and 176R can be set so that the magnets 170L and 170R move relative to the sensors 176L and 176R when the buffer 110 is compressed. Therefore, when the buffer 110 is compressed, the voltage generated by the sensors 176L and 176R changes. In particular, when the magnets 170L, 170R move closer to the sensors 176L, 176R, the voltage generated by the sensor 176L increases due to the compression of the buffer 110, and the buffer includes a buffer chassis 171 that accommodates the sensors 176L, 176R. Therefore, the left and right buffer levels are linearly proportional to the generated voltage. The controller 405 of the robot 100 can normalize the left buffer level and the right buffer level as a percentage, and can determine the average buffer level of the left buffer level and the right buffer level. For each cleaning operation, the controller 405 can also dynamically calibrate the left and right buffer extents so that 0% corresponds to an uncompressed state of the buffer 110 and 100% corresponds to a compressed state of the buffer 110. Negative percentages can represent expansion of the buffer 110. As described herein, the control system 400 can utilize the buffer sensor system 435 and the detected left and right buffer extents to perform a wall tracking behavior that allows the robot 100 to track the surface of a wall or other obstacle (such as bathroom fixtures) to clean hard-to-access corners and gaps defined by the intersection of the floor surface and the wall surface. For example, when tracking a wall, the buffer 110 of the robot 100 will be partially compressed due to friction between the buffer 110 and the wall. The robot 100 can maintain contact with the wall by maintaining the degree of buffer compression and maintaining the difference between the left and right buffer compressions by continuously adjusting the rotational and translational speeds of the robot 100 to maintain a near constant compression.
[0089] In other cases, the robot 100 may calculate the difference between the left and right bumper extents. A positive difference indicates that the left bumper extent is greater than the right bumper extent, and a negative difference indicates that the right bumper extent is greater than the left bumper extent. When the robot 100 performs wall tracking so that the left portion 110L of the bumper 110 is adjacent to the wall surface 20a, the robot 100 may maintain the difference within the following ranges, for example, 0% to 10%, 5% to 15%, 4% to 20%. When the robot 100 performs wall tracking so that the right portion 110R of the bumper 110 is adjacent to the wall surface 20a, the controller 405 of the robot 100 may maintain the difference within the following ranges, for example, -5% to -15%, -10% to 0%, -20% to -4%, by issuing a drive instruction to the driver 410. Alternatively, the controller 405 may determine an average value of the left and right bumper extents.
[0090] The memory 460 may be loaded with thresholds and limits associated with normalized average buffer extents, as described herein. The memory 460 may also be loaded with static calibration results performed during the manufacture of the robot 100. The static calibration results may define a range within which the robot considers the described dynamic calibration to be valid. In some examples, the position of the pillars holding the buffer will change a small amount as the robot is reused. To account for this change, a calibration process may be used to determine whether the uncompressed position of the buffer and the associated sensor readings have changed. This calibration may be performed when starting the robot and / or during cleaning, this calibration may be performed dynamically every 5-10 seconds between each cleaning task.
[0091] return Figure 1A , Figure 3C and Figure 4 , when the robot 100 tracks the wall 20 of the room 320, the robot 100 can perform a specific process that allows the robot 100 to clean the floor surface 10 that is closely adjacent to the wall surface 20. The controller 405 can control the movement of the robot body 102 so that the body 102 tracks the wall surface 20 based on the value of the average buffer degree. The value is based on a signal or multiple signals generated by the buffer sensor system 435 (e.g., the buffer sensor components 112L and 112R), and the value can indicate that the buffer 110 is partially compressed, so that the value is within the compression range or within the interval between the uncompressed state and the compressed state. Subsequently, the controller 405 can determine whether the buffer 110 is within the compression range or interval (e.g., based on the standardized buffer degree). For example, the controller 405 may determine that the buffer has reached a threshold compression level for wall following, such as 2% to 2.5%, 2.5% to 3%, 3% to 3.5%, 3.5% to 4%, 4% to 4.5%, 4.5% to 5%, 5% to 5.5%, 5.5% to 6%, 6% to 6.5%, 6.5% to 7%, 7% to 7.5%. Subsequently, the wall following process may be performed and continued without abating as long as the buffer remains compressed within a predetermined range between compressed and uncompressed states (e.g., 2% to 5%, 2.5% to 7.5%, 5% to 10%, 5% to 15%, 7.5% to 12.5%, 10% to 15%, 5% to 20%, 10% to 20%). That is, the wall following process continues as long as the magnitude of the force between the buffer and the robot remains within the specified range. The robot 100 may maintain the magnitude of the force within a specified range by continually adjusting the rotational and translational speeds of the robot 100 to maintain a nearly constant compression of the bumper. If the amount of compression exceeds an upper threshold (e.g., 20%), the wall following process may stop and other processes may take over control of the robot to reestablish the traversal pattern or reengage the wall or other obstacle to continue wall following, as described herein.
[0092] The controller 405 of the robot 100 may also maintain an average bumper level, and in some cases, maintain a near constant compression of the difference between the left and right bumper levels, within a predetermined range or interval by continuously adjusting its rotational and translational speeds. While wall tracking, the robot 100 may travel at a calibrated translational speed (e.g., 50 mm / s to 150 mm / s, 150 mm / s to 250 mm / s, 250 mm / s to 350 mm / s), rather than rotating. When the average bumper level deviates from a target average bumper level stored in the memory 460, the controller 405 may deliver a driver command to the driver 410 to decrease the speed of the robot 100 by an amount proportional to the deviation. When the bumper level difference deviates from a target difference stored in the memory 460, the controller 405 may deliver a driver command to the driver 410 to increase the rotational speed of the robot 100 by an amount proportional to the deviation. In some embodiments, the rotational and translational speeds may be adjusted by an amount proportional to the rate of change of the average collision level and the collision level difference, respectively.
[0093] In some cases, the uncompressed position may vary from one cleaning operation to another because the resilient struts 164 ( Figure 1F ) during the cleaning operation. During the cleaning operation, the controller 405 can dynamically calibrate the uncompressed position to account for changes in the position of the buffer 110 relative to the robot body 102. The controller 405 can calibrate the initial position of the buffer relative to the resilient support 164 at the beginning of the cleaning operation (when the buffer is not in contact with the wall surface). For example, when the buffer is in the neutral position, the voltage signals of the buffer sensor assemblies 112L and 112R can be set to correspond to the uncompressed position. In other words, these voltage signals can represent a standardized average buffer degree of 0%. As described above, the memory 460 can include a range of valid voltages (and therefore, a range of valid calibrations) that can generally represent a standardized average buffer degree of 0%.
[0094] FIG. 5A to FIG. 5F An example of a cleaning action that the robot 100 may perform along a wall 20 of a room is shown. In this example, the wall surface 20 includes an inner corner 500 defined by the intersection of the wall surface 20a and the wall surface 20b.
[0095] Reference Figure 5A, the robot 100 approaches the inside corner 500 to perform a wall following behavior. During the wall following behavior, the robot 100 places the cleaning pad against the wall surface 20a so that the cleaning pad can clean the interface between the wall 20 and the floor surface 10 (e.g., the wall-floor interface 30 of FIG. 1 ). The robot 100 can achieve such proximity to the wall surface 20 by contacting the wall surface 20 with the bumper 110 of the robot 100. The contact is at a very small angle (e.g., between about 1 degree and about 10 degrees, between about 3 degrees and about 15 degrees, between about 3 degrees and about 20 degrees, between about 5 degrees and about 20 degrees, between about 3 degrees and about 10 degrees, between about 10 degrees and about 20 degrees) so that sufficient contact force is maintained between the wall 20 and the bumper 110, and at least as long as the force is maintained to continue wall following. In this example, the robot 100 contacts the wall surface 20a with the right portion 110R of the bumper 110 so that the cleaning pad can track the wall-floor interface (e.g., the wall-floor interface of FIG. 1 ). Sufficient contact for wall tracking may be detected when the magnitude of the force between the bumper and the wall is within the expected compression range with the bumper 110 partially compressed.
[0096] During wall following, the robot 100 may position itself against the wall to maintain the bumper 110 in a partially compressed state so that the average bumper degree is within a predetermined interval (e.g., a compression range or interval), for example, the predetermined interval may be 0% to 5%, 2.5% to 7.5%, 5% to 10%, 5% to 15%, 5% to 20%, 7.5% to 10%, 7.5% to 12.5%, 10% to 15%, 10% to 20%. In some examples, above this interval, the robot 100 may press the bumper 110 against the wall surface 20a with a very large force, which may prevent the forward movement of the robot 100 and / or represent an obstacle. Below this interval, the robot 100 may not press the bumper 110 hard enough against the wall surface 20b to allow the cleaning pad 120 to reach the gaps and corners defined by the floor surface 10 and the wall surface 20a. If the controller 405 detects a force above the aforementioned interval, the controller 405 can initiate an operation to move the robot away from the wall and reengage with the wall (for further wall tracking) or disengage from the wall. If the controller 405 detects a force below the aforementioned interval, the controller can initiate an operation to further move the robot into contact with the wall or begin covering a pattern, such as a braid and vine pattern.
[0097] Reference Figure 5B, in this example, the robot 100 tracks the wall surface 20a until it contacts the wall surface 20b with the front portion 110F of the bumper 110. When the wall surface 20b contacts the front portion 110F, the average bumper extent increases to a bumper extent that exceeds an upper threshold for wall tracking, indicating that the robot 100 pushes the front portion 110F of the bumper 110 against the surface (e.g., the wall surface 20b). For example, the upper threshold of the normalized average bumper extent may be 7% to 8%, 7.5% to 8%, 8% to 9%, 9% to 10%, 10% to 11%, 11% to 12%, 12 to 13%, 13% to 14%, 14% to 15%, 15% to 16%, 16% to 17%, 17% to 18%, 18% to 19%, 19% to 20%. In some cases, based on the signals from the current sensors 123 and / or encoders, the controller 405 may determine that the wheels of the robot 100 are moving slower than a predetermined speed, thus indicating that the robot 100 is no longer advancing along the wall surface 20a. The force on the bumper 110 of the robot 100 may be inferred based on the speed of the wheel compared to the current delivered to the wheel. The speed of the wheel divided by the current delivered to the wheel is proportional to the force on the wheel, so the controller 405 may calculate the force on each wheel. The controller 405 may determine the speed of the wheel based on the signals from the encoders operable with the wheel, and determine the current of the wheel based on the signals from the current sensors 123 of the wheel. Subsequently, the controller 405 may infer the force on each wheel, calculate the difference between the inferred forces, and calculate the torque about the center of mass of the robot based on the difference. The controller 405 may calculate the force on the bumper 110 based on the torque. In certain embodiments, the memory 460 can include a target force range (eg, 0.1N to 0.2N, 0.1N to 0.3N, 0.1N to 0.5N, 0.5N to 1N) that the controller 405 can maintain when the bumper 110 contacts a vertically oriented surface.
[0098] exist Figure 5C , Figure 5D ,as well as Figure 5E , the robot 100 attempts to reengage the wall-following behavior along the wall surface 20b (eg, on another wall around the corner). Figure 5CWhen the average buffer level exceeds the threshold buffer level, the robot 100 may respond by stopping forward motion and driving the robot 100 in reverse such that the robot 100 faces away from the wall surface 20b such that the buffer 110 is no longer in a compressed state. The robot 100 may continue to back away until the average buffer level drops below a lower threshold of the buffer level, for example, the lower threshold may be 7.5% to 7%, 7% to 6%, 6% to 5%, 5% to 4%, 4% to 3%, 3% to 2%, 2% to 1%, 1% to 0%, less than 0%. Once the average buffer level decreases below the lower threshold, the robot 100 may continue to back away such that the buffer 110 is a predetermined back away distance BD from the wall surface 20b. The distance BD may be selected such that the robot 100 has enough room to turn around and begin wall tracking along the wall surface 20b. In some cases, for example, the distance BD may be 5 mm to 10 mm, 10 mm to 15 mm, 15 mm to 20 mm, 20 mm to 25 mm, 25 mm to 30 mm, 30 mm to 35 mm, about 10 mm, about 20 mm, or greater than 30 mm. The controller 405 may calculate the distance of the bumper 110 from the wall surface 20 b by using the signal output by the wheel encoder of the accelerometer and / or sensor system 430 and may compare the calculated distance with the distance BD.
[0099] Reference Figure 5D In this example, the robot 100 turns away from the wall surface 20a so that the robot 100 can position its forward driving direction F in a direction substantially parallel to the wall surface 20b (e.g., perpendicular to the previous direction of travel in the case of a 90 degree turn). Figure 5E , then the robot 100 then reengages the wall following behavior with the wall surface 20b. At this point, the robot 100 may continue to engage the right portion 110R of the bumper 110 with the wall surface 20b until the average bumper extent is within the predetermined interval described herein. After the robot 100 reengages the wall following behavior, now refer to Fig. 5F The robot 100 continues to perform the wall tracking behavior along the wall surface 20b by maintaining the force against the wall so that the average bumper degree is maintained within the predetermined interval. The robot 100 can cause the bumper degree to increase by maintaining the right portion 110R of the bumper 110 in contact with the wall surface 20b.
[0100] FIG. 6A to FIG. 6E An example of the behavior that the robot 100 may perform to clean a wall 20 including an outer corner 600 is shown, the outer corner being defined by the intersection of the wall surface 20c and the wall surface 20d.
[0101] Reference Fig. 6A, the robot 100 approaches the outer corner 600 to perform a wall following behavior. During the wall following behavior, the robot 100 places the cleaning pad closely against the wall surface 20c so that the cleaning pad can clean the interface between the floor surface 10 and the wall 20 (e.g., the wall-floor interface of FIG. 1 ). The robot 100 can achieve such proximity to the wall surface 20c by contacting the wall surface 20 with the buffer 110 of the robot 100, wherein the wall surface 20 and the buffer 110 are tangential or at a very small angle (e.g., between about 1 degree to about about 10 degrees, between about 3 degrees and about 15 degrees, between about 3 degrees and about 20 degrees, between about 5 degrees and about 20 degrees, between about 3 degrees and about 10 degrees, between about 10 degrees and about 20 degrees). For example, the robot 100 contacts the wall surface 20c with the right portion 110R of the buffer 110 so that the cleaning pad can follow the wall-floor interface. During wall following, the robot 100 may keep the bumper 110 compressed so that the average bumper extent is within a predetermined interval as described herein. Above the interval, the robot 100 presses the bumper 110 against the wall surface 20c with a very large force, which may prevent forward movement of the robot 100. Below the interval, the robot 100 may not press the bumper 110 hard enough against the wall surface 20d to allow the cleaning pad 120 to reach the gaps and corners defined by the floor surface 10 and the wall surface 20c. In some embodiments, a smaller force threshold may increase the relative effect of noise, making it more likely that the robot 100 will not closely follow a corner.
[0102] Reference Figure 6B In an exemplary embodiment, the robot 100 tracks the wall surface 20c until it is detected that the average bumper extent is no longer within a predetermined interval. In particular, the robot 100 can detect that the bumper 110 is no longer in contact with the wall surface 20c and can detect that the average bumper extent is below a lower threshold bumper extent (e.g., the bumper 110 is no longer partially compressed). When the right portion 110R of the bumper 110 is no longer in contact with the wall surface 20c, in this example, the average bumper extent decreases to below the lower threshold bumper extent because the friction between the wall surface 20c and the right portion 110R no longer compresses the bumper 110. The decrease in the average bumper extent indicates that the robot 100 is no longer wall tracking. For example, the lower threshold of the bumper extent can be 7.5% to 7%, 7% to 6%, 6% to 5%, 5% to 4%, 4% to 3%, 34% to 2%, 2% to 1%, 1% to 0%, less than 0%. Upon detecting that the bumper 110 is no longer in contact, the robot 100 can stop moving forward.
[0103] Figure 6C and Fig.6D , the robot 100 attempts to reengage the wall following behavior along the wall surface 20d. Figure 6C and Fig.6D , when the average bumper level is below the lower threshold bumper level, the robot 100 may respond by turning in the direction in which it initially tracked the wall 20c and the robot 100 slowly advances until the right portion 110R of the bumper 110 engages the wall surface 20d. In some embodiments, upon determining that the average bumper is below the lower threshold bumper level, the controller 405 of the robot 100 may issue a drive command to the driver 410 to reverse the direction of the wheels of the robot 100 to move the robot 100 in a rearward direction A. After the controller 405 determines that the robot 100 has moved a predetermined distance in the rearward direction A based on, for example, signals from encoders of the wheels, the controller issues a drive command to the driver 410 to rotate the wheels of the robot 100 so that the forward drive direction F is substantially parallel to the wall surface 20d. In some cases, the drive instructions cause the wheels to rotate the robot 100 so that the forward drive direction F forms a small angle with the wall surface 20 (e.g., between about 1 degree and about 10 degrees, between about 3 degrees and about 15 degrees, between about 3 degrees and about 20 degrees, between about 5 degrees and about 20 degrees, between about 3 degrees and about 10 degrees, between about 10 degrees and about 20 degrees).
[0104] After the robot 100 reengages the wall-following behavior with the wall surface 20d, it now refers to Fig. 6E , the robot 100 continues to perform the wall tracking behavior along the wall surface 20b by maintaining the average bumper degree within a predetermined interval.
[0105] return Figure 3BIn some embodiments, the robot 100 may detect the doorway 328 by engaging the wall surface 20 at points 325A and 325B on the sides of the doorway 328. At points 325A and 325B, the robot 100 contacts the wall surface 20 such that approximately only half of the front portion of the bumper contacts the wall surface 20. In some cases, approximately 25% to 75%, 40% to 60%, 45% to 55% of the front portion of the bumper contacts the wall surface 20. At point 325A, based on the bumper extent detected by the left bumper sensor assembly 112L and the bumper extent detected by the right bumper sensor assembly 112R, the controller 405 of the robot 100 may determine that the right portion 110R of the bumper 110 has engaged the wall surface 20 and the left portion 110L of the bumper 110 has not engaged the wall surface 20. Therefore, the controller 405 may determine that the wall surface 20 is discontinuous from the position where the right portion 110R contacts the wall surface 20 to the position where the left portion 110L is positioned. At point 325B, controller 405 may determine that left portion 110L of buffer 110 engages with wall surface 20 and right portion 110R of buffer 110 does not engage with wall surface 20. Therefore, controller 405 may determine that wall surface 20 is discontinuous from the position where left portion 110L contacts wall surface 20 to the position where right portion 110R is positioned. Based on the contact with buffer 110 at points 325A, 325B, controller 405 may determine that an opening such as doorway 328 exists between points 325A, 325B. Controller 405 may calculate the distance between points 325A, 325B, which is approximately 2D, and determine that doorway 328 has a width W that is less than 2D.
[0106] like Figure 5A , Fig. 5F , Fig. 6A and Fig. 6E As shown, the robot 100 tracks the wall surfaces 20a and 20b by maintaining contact between the right portion 110R of the buffer 110 and the wall surfaces 20a and 20b. In some embodiments, the robot 100 may additionally and / or alternatively track the wall surface or vertically oriented surface by maintaining contact between the left portion 110L of the buffer 110 and the wall surface. The friction generated by the contact causes compression of the buffer 110, and in some embodiments the robot attempts to maintain the compression at a predetermined interval. In some embodiments, the cleaning pad 120 may extend beyond the buffer 110, and the cleaning pad 120 and the buffer 110 may be configured so that the force applied to the cleaning pad 120 is transmitted to the buffer 110. For example, referring to Figure 1G , the resilient struts 164 can mechanically connect the cleaning pad 120 to the buffer 110. Thus, frictional forces on the cleaning pad 120 can compress the buffer, thereby increasing the average buffer depth.
[0107] Reference FIG. 7A to FIG. 7D, the robot 100 can maintain contact between the cleaning pad 120 and the wall surfaces 20a and 20b, while maintaining contact between the buffer 110 and the wall surfaces 20a, 20b, 20c, and 20d by tracking the wall surfaces, so that the forward driving direction F and the wall surfaces 20a, 20b, 20c, and 20d form a small angle θ (e.g., between about 1 degree and about 10 degrees, between about 3 degrees and about 15 degrees, between about 3 degrees and about 20 degrees, between about 5 degrees and about 20 degrees, between about 3 degrees and about 10 degrees, between about 10 degrees and about 20 degrees). The predetermined interval can be within a similar interval, such as about Figure 5A , Fig. 5F , Fig. 6A and Fig. 6E (e.g., 0% to 5%, 2.5% to 7.5%, 5% to 10%, 5% to 15%, 5% to 20%, 7.5% to 10%, 7.5% to 12.5%, 10% to 15%, 10% to 20%). In some cases, the predetermined interval may be greater than the predetermined interval described above. Figure 5A , Fig. 5F , Fig. 6A and Fig. 6E The predetermined spacing used in the described case is sufficient to provide an amount of friction between the cleaning pad 120 and the wall surface. For example, the spacing can be increased by 0% to 1%, 1% to 2%, 2% to 3%, 3% to 4%, 4% to 5%, about 1%, about 2%, about 3%. In order to sufficiently compress the cleaning pad 120, the robot 100 can orient itself so that the forward drive direction F of the robot 100 forms a small angle θ with the wall surfaces 20a, 20b, 20c, and 20d. The angle θ allows a portion of the forward drive direction F to push the cleaning pad 120 into the wall surfaces 20a, 20b, 20c, and 20d, thereby generating a greater compression force on the cleaning pad 120 and a greater friction force on the buffer 110.
[0108] Reference Figure 8 , flowchart 800 illustrates an example method of performing wall tracking behavior.
[0109] At operation 805, a controller of the robot outputs a control signal to the robot to track the wall surface. After detecting that the robot has completed the braiding and vine behavior, the controller may output the control signal. The robot may track the wall surface having a first surface portion and a second surface portion. The first and second surface portions may define a corner, such as about FIG. 5A to FIG. 5F and FIG. 6A to FIG. 6Eas described. In some embodiments, the controller is programmed to dynamically calibrate the position of the bumper relative to the body of the robot. Calibration occurs between wall tracking, when the robot is not expected to come into contact with a vertically oriented surface or obstacle that would cause compression of the robot's bumper. If the measured position is not within a predetermined range, the robot's controller may issue a drive command that moves the robot to an open area to ensure that the robot's bumper does not contact the obstacle. The controller may also issue a drive command to stop the robot's motion to avoid inadvertent forces on the bumper. The predetermined range may be a static calibration performed during manufacturing, as described above. Dynamic calibration may occur before the controller outputs a control signal to track a wall surface.
[0110] At operation 810, the controller receives a signal from a linear sensor on the robot. The robot can perform wall tracking so that the robot's buffer contacts a first wall surface. For example, the sensor can be a buffer sensor assembly 112R, 112L, as described herein. The signal can be a voltage, current, frequency, or other electrical signal. The sensor generates a variable signal in response to the movement of the buffer relative to the body of the robot. The change in the signal is in response to the contact between the buffer and the wall surface, and the signal can vary linearly with the movement of the buffer relative to the body. The controller can receive two or more signals from two or more sensors on the robot. The first sensor can generate a first signal in response to the movement of the buffer, and the second sensor can generate a second signal in response to the movement of the buffer. The first and second signals can vary linearly with the movement of the buffer. In some examples, the position of the buffer is determined based on the average of the two linear sensor values.
[0111] At operation 815, the controller determines a value X representing the compression of the buffer on the robot. For example, the value X may be the degree of the buffer. The controller may control the movement of the robot body based on the determined value X. The controller may cause the body to track or trace the wall surface based on the value X. In the case where the robot has more than one sensor to detect the movement of the buffer, the controller may calculate the value X based on a separate value from each sensor. The value X may be based on a signal from a linear sensor, and the controller may determine whether the buffer is within a compression range between an uncompressed position and a partially compressed position based on the value X. When the controller determines the value X based on two or more signals, wherein the two or more signals vary linearly with the magnitude of the force between the robot and the wall surface, the value X additionally and / or alternatively represents the angle at which the robot engages the surface. The angle may be based on two or more sensor signals representing the value X. The controller may control the angle at which the robot engages the wall surface based on the value X. In some embodiments, the controller may control the magnitude of the force with which the robot engages the wall surface.
[0112] At operation 820, if the value X is above the lower limit LL and below the upper limit UL of the compression range, the controller outputs a control signal by issuing a drive signal to cause the robot to continue in the forward drive direction to track the wall surface. The control signal may be the same as the control signal output at operation 805. In some cases, the control signal adjusts the drive of the robot to keep the value X in an optimal value. In some cases, the value X may be based on a signal from a sensor and may represent that the buffer is within a compression range between an uncompressed position and a compressed position. If the value X is an average normalized buffer degree, for example, the lower limit LL of the compression range may be 7.5% to 7%, 7% to 6%, 6% to 5%, 5% to 4%, 4% to 3%, 34% to 2%, 2% to 1%, 1% to 0%, less than 0%. For example, the upper limit value of the compression range may be 7% to 8%, 7.5% to 8%, 8% to 9%, 9% to 10%, 10% to 11%, 11% to 12%, 12 to 13%, 13% to 14%, 14% to 15%, 15% to 16%, 16% to 17%, 17% to 18%, 18% to 19%, 19% to 20%. The optimal value may be the average of the lower limit value LL and the upper limit value UL. In some embodiments, the lower limit value LL may be between about 0% and 7.5% or less, and the upper limit value may be between about 7.5% and 15% or more. Maintaining the average buffer degree within the predetermined interval or compression range may be beneficial in maintaining the mobility of the robot while facilitating cleaning of corners and gaps defined by the first wall surface. By maintaining the value X within the predetermined interval or compression range, the control signal may cause the robot to track the wall surface that the robot tracks at operation 805. The controller may be programmed to control the motion of the robot body to track the wall surface to maintain the value X within the compression range.
[0113] At operation 825, if the value X is below the lower limit value LL or above the upper limit value UL of the compression range, the controller outputs a control signal to re-engage the wall surface. The controller may be programmed to control the movement of the robot body so that the robot body withdraws from the wall surface in response to the value outside the compression range. In some embodiments, the controller may receive a signal from a sensor that detects the speed of the wheel. For example, the sensor may be an encoder or a current sensor operable with the wheel. For example, based on the speed of the wheel and the bumper sensor, the controller may control the robot to withdraw from the wall surface to rotate away from the wall surface and then re-engage the wall surface. In the case where the value X is above the upper limit value UL, the controller may perform a re-engagement behavior, as described above. FIG. 5B to FIG. 5EFor example, the controller may deliver a control signal to cause the robot to momentarily stop forward movement and then withdraw from the wall surface. The control signal may also cause the robot to rotate away from the wall surface and then reengage with the wall surface. In the event that the value X is below the lower limit value LL, it may indicate that there is no contact between the buffer and the wall surface, and the controller may perform a reengagement behavior, as described above. FIG. 6B to FIG. 6D The controller may deliver a control signal to cause the robot to momentarily stop forward motion and, in some embodiments, to withdraw the robot toward the wall surface. Subsequently, the control signal may cause the robot to turn toward the wall surface and subsequently reengage with the wall surface.
[0114] Although the magnets 170L and 170R and the sensors 176L and 176R have been described as being positioned so that compression of the bumper 110 results in an increase in the voltage generated by the sensors 176L and 176R, in other embodiments, the magnets and sensors are positioned so that the magnets move away from the sensors when the bumper is compressed. In such embodiments, the sensors generate a smaller voltage when the bumper is compressed.
[0115] Although the navigation behaviors described above have been explained with respect to the robot 100 performing wet cleaning, in some cases, the robot 100 may perform dry cleaning and may not incorporate all of the above navigation behaviors, or may incorporate additional behaviors, in the cleaning operation. For example, the robot 100 may perform a braid pattern without a vine pattern.
[0116] In some examples, the robot learns the locations of surfaces that have been previously traversed by storing these locations during a cleaning run on a map stored in the robot's non-transitory memory 460 or on an external storage medium accessible by the robot traversing a wired or wireless medium. In some embodiments, the robot includes an upward-facing camera and / or one or more range-finding lasers for building this map of the space. In some examples, the controller 405 uses a map of walls, furniture, floor variations, and other obstacles to locate and position the robot sufficiently away from obstacles and / or floor variations before applying the cleaning fluid.
[0117] Although the bumpers have been described as detecting the magnitude of forces on the robot, in some embodiments, force sensors, pressure sensors, or some other sensors placed on the robot may be used to sense forces. The example wall tracking techniques described herein may be controlled or executed, at least in part, using one or more computer program products, such as one or more computer programs tangibly embodied in one or more information carriers, such as one or more non-transitory machine-readable storage media, for execution by one or more data processing devices, such as programmable processors, computers, multiple computers, and / or programmable logic components, or to control the operation of the one or more data processing devices.
[0118] Although in some of the examples described above, after completing the area cleaning behavior, the wall tracking behavior is used to clean the perimeter of the room or other spaces, in other examples, the wall tracking behavior can be used to allow the robot to escape from a cluttered environment or boundary area. For example, if the robot enters a space with a narrow opening for an entrance / exit, the robot may get stuck in the space and the normal coverage pattern is not aligned with the entrance / exit to allow the robot to escape. In this case, the robot can determine that it is in a cluttered environment and perform a wall tracking behavior to escape from the area. Tracking walls allows the robot to identify narrow exits that otherwise the robot may have difficulty locating. In one specific example, the robot can perform a random traversal cleaning pattern, and upon recognizing that the robot repeatedly traverses the same area (e.g., is caught in a small space or a cluttered area), the robot can perform a wall tracking behavior to exit or escape the area.
[0119] Computer programs may be written in any form of programming language, including compiled or interpreted languages, and may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
[0120] The operations associated with performing all or part of the wall tracking behaviors described herein may be performed by one or more programmable processors executing one or more computer programs to perform the functions described herein. Controlling all or part of the wall tracking behaviors described herein may be performed using dedicated logic circuitry such as an FPGA (field programmable gate array) and / or an ASIC (application specific integrated circuit).
[0121] By way of example, processors suitable for executing computer programs include general and special microprocessors, and any one or more processors of any type of digital computer. Typically, the processor will receive instructions and data from a read-only storage area or a random access storage area or both. The elements of a computer include one or more processors for executing instructions and one or more storage area devices for storing instructions and data. Typically, a computer will also include one or more machine-readable storage media such as magnetic, magneto-optical disks, or optical disks for storing data, or be operably coupled to receive data from the one or more machine-readable storage media, or transmit data to the one or more machine-readable storage media or all. Machine-readable storage media suitable for implementing computer program instructions and data include all forms of non-volatile storage areas, including semiconductor storage area devices such as EPROM, EEPROM, and flash memory storage area devices, such as magnetic disks, magneto-optical disks, and CD-ROM and DVD-ROM disks.
[0122] The elements of the different embodiments described herein can be combined to form other embodiments not specifically provided above. Without adversely affecting its operation, the elements can be excluded from the structure described herein. In addition, various separated elements can be combined into one or more separate elements to perform the functions described herein.
Claims
1. A robot, comprising: a body that is movable relative to a wall surface; a buffer mounted on the body, the buffer being movable relative to the body between a fully uncompressed position and a fully compressed position; and a controller that causes the robot to perform a wall-tracking behavior in which the robot advances along a first portion of the wall surface while causing the buffer to contact the wall surface and while maintaining the position of the buffer within a predetermined range between the fully compressed position and the fully uncompressed position to maintain the angle between the buffer and the wall surface, steers toward the first portion of the wall surface in response to the position of the buffer being within the predetermined range and the fully uncompressed position, while advancing along the first portion of the wall surface such that contact between the robot and the wall surface is maintained, and then advances along a second portion of the wall surface that is orthogonal to the first portion of the wall surface.
2. The robot according to claim 1, further comprising: a cleaning pad attached to the bottom of the body; and a fluid applicator configured to dispense fluid from the robot; wherein, to cause the robot to perform the wall-tracking behavior, the operations initiated by the controller include: adjusting the rotational and translational speeds of the robot to keep the magnitude of the force between the buffer and the robot within a specified range.
3. The robot according to claim 1, wherein, the angle is in the range of 3 degrees to 20 degrees.
4. The robot according to claim 1, further comprising: a cleaning pad attached to the bottom of the body and extending beyond the buffer; and a fluid applicator configured to dispense fluid from the robot; wherein, to cause the robot to perform the wall-tracking behavior, the controller initiates operations to keep the cleaning pad in contact with the wall surface.
5. The robot according to any one of claims 1-4, further comprising: a first sensor that generates a first signal in response to movement of the buffer relative to the body, a second sensor that generates a second signal in response to movement of the buffer relative to the body; wherein the controller is configured to maintain the position of the buffer within the predetermined range based on the first signal and the second signal.
6. The robot according to claim 5, wherein, the value of the first signal and the value of the second signal vary linearly with respect to the movement of the buffer at least when the buffer is within the predetermined range.
7. The robot according to claim 5, wherein, the position of the buffer is based on an estimated value of the difference or average between the value of the first signal and the value of the second signal.
8. The robot according to claim 5, wherein: the robot has a left side, a right side, a front, and a rear; the first sensor is adjacent to the right side and the second sensor is adjacent to the left side; and the buffer is placed along the front of the robot and extends along at least a portion of the left side and at least a portion of the right side.
9. The robot according to claim 8, further comprising: A third sensor generates a third signal in response to movement of the bumper relative to the body, the third sensor being between the left and right sides and adjacent to the front, wherein the controller initiates operation to maintain the position of the bumper within the predetermined range based on the first, second and third signals.
10. The robot according to any one of claims 1 to 4, further comprising a sensor, wherein the sensor include: a support post mounted to the bumper; a magnet mounted to the support post; as well as a Hall effect sensor mounted to the body above the magnet, the Hall effect sensor configured to generate a signal in response to movement of the bumper relative to the body, Wherein the controller is configured to maintain the position of the buffer within the predetermined range based on the signal.
11. The robot according to any one of claims 1 to 4, further comprising: include: a capacitive sensor including a pair of capacitive plates, one of the capacitive plates being movable relative to the other capacitive plate based on movement of the bumper; Wherein, the controller is programmed to determining a time constant from a signal generated in response to movement of one of the capacitive plates, and The position of the buffer is maintained within the predetermined range based on the time constant.
12. The robot according to any one of claims 1 to 4, further comprising an inductive sensor comprising a core material movable in a winding based on movement of the buffer, in, The controller is programmed to determining a time constant from the signal responsive to the core motion, and The position of the buffer is maintained within the predetermined range based on the time constant.
13. The robot according to any one of claims 1 to 4, in, The controller is programmed to dynamically calibrate a neutral position of the bumper relative to the body in response to the bumper being within another predetermined range of no contact between the bumper and the wall surface.
14. The robot according to any one of claims 1 to 4, in, The controller is programmed to control movement of the robot to withdraw the robot from the wall surface in response to the position of the bumper being between the predetermined range and a fully compressed position.
15. The robot according to any one of claims 1 to 4, further comprising: include: wheel; as well as a detector associated with the wheel, the detector being configured to detect the speed of the wheel, Wherein the controller is programmed to cause the robot to retract from the wall surface, rotate away from the wall surface, and then reengage the wall surface based at least in part on the speed of the wheels and the position of the bumper.
16. The robot according to any one of claims 1 to 4, further comprising: include: A cleaning pad is attached to the bottom of the main body, the cleaning pad extending beyond the buffer.
17. The robot according to any one of claims 1 to 4, in, The controller is configured to control the robot to turn toward the first portion of the wall surface while advancing along the first portion of the wall surface in response to the average bumper level being below a lower threshold bumper level.
18. A method of controlling a robot, include: During a wall following behavior in which the robot advances along the wall surface, maintaining an angle between the first portion of the wall surface and the robot such that a position of the bumper of the robot between a fully uncompressed position and a fully compressed position is maintained within a predetermined range between the fully uncompressed position and the fully compressed position; and In response to the bumper being between the predetermined range and the fully uncompressed position, steering the robot toward the first portion of the wall surface while advancing along the first portion of the wall surface and maintaining contact between the robot and the first portion of the wall surface, and then Advance along a second portion of the wall surface that is orthogonal to the first portion of the wall surface.
19. The method according to claim 18, further comprising: include: Based on the position of the bumper being between the predetermined range and a fully compressed position, the robot is controlled to withdraw from the wall surface.
20. The method according to claim 18, further comprising: include: detecting the speed of the wheels of the robot; as well as Based at least in part on the speed of the wheels and the position of the bumper, the robot is controlled to withdraw from the wall surface, rotate away from the wall surface, and then reengage the wall surface.
21. The method of claim 18, further comprising determining the position of the bumper based on values of two or more signals that vary with the magnitude of the force between the robot and the wall surface, in, Maintaining the angle includes maintaining an angle between the robot and the wall surface based at least in part on values of the two or more signals.
22. The method according to claim 18, in, In response to the average bumper level being below a lower threshold bumper level, the robot is steered toward a first portion of the wall surface.
23. The method according to claim 21, in, The values of the two or more signals vary in a linear relationship with respect to the movement of the bumper at least when the bumper is within the predetermined range.
24. The method of claim 21, further comprising determining a position of the buffer based on an estimate of a difference, or an average, between the two signals.
25. A mobile cleaning robot, include: a body movable relative to a wall surface; a reservoir configured to contain a fluid; a spray mechanism configured to dispense a fluid from the robot; a bumper mounted to the body, the bumper being movable relative to the body between a fully uncompressed position and a fully compressed position; a cleaning pad removably attached to the bottom of the body, the cleaning pad extending beyond the width of the buffer; and A controller is used to execute instructions to perform operations, wherein the operations include: advancing the robot along the first portion of the wall surface while positioning the bumper within a predetermined range between a fully uncompressed position and a fully compressed position to maintain an angle between the body and the first portion of the wall surface and to maintain contact between the cleaning pad and the first portion of the wall surface, and In response to the bumper being between the predetermined range and the fully compressed position when the bumper contacts the second portion of the wall surface, controlling the robot to withdrawing from the second portion of the wall surface until the buffer is between the predetermined range and the fully uncompressed position, The first portion rotates away from the wall surface, engaging a second portion of the wall surface so that the bumper is within a predetermined range, and then The body advances along the second portion of the wall surface while positioning the buffer within a predetermined range to maintain an angle between the body and the second portion of the wall surface and to maintain contact between the cleaning pad and the second portion of the wall surface.
26. The mobile cleaning robot according to claim 25, in: Advancing the robot along the first portion of the wall surface includes advancing the robot so that at least one of the right side and the left side of the body is not parallel to the wall surface.
27. The mobile cleaning robot according to claim 25, in, Advancing the robot along the first portion of the wall surface includes adjusting rotational and translational speeds of the robot to maintain the bumper within a predetermined range.
28. The mobile cleaning robot according to claim 25, in: The robot further includes a sensor that generates a signal in response to movement of the bumper relative to the body caused by contact between the bumper and the wall surface, the signal varying linearly with movement of the bumper relative to the body; and Advancing the robot along the first portion of the wall surface includes advancing the robot along the first portion of the wall surface based at least in part on a value indicating an amount of compression of the bumper, the value being based on the signal and indicating that the bumper is within a predetermined range.
29. The mobile cleaning robot according to claim 28, in, The sensor comprises: a strut mounted to the bumper; a magnet mounted to the support post; and A Hall effect sensor is mounted in the body.
30. The mobile cleaning robot according to claim 28, in, The sensor comprises a capacitive sensor including a first capacitive plate in a fixed position relative to the bumper and a second capacitive plate in a fixed position relative to the body, wherein the first capacitive plate is movable relative to the second capacitive plate when the bumper moves relative to the body.
31. The mobile cleaning robot according to claim 28, in, The sensor comprises an inductive sensor.
32. The mobile cleaning robot according to claim 28, in, The sensor is a first sensor, and the signal is a first signal, and wherein the robot further comprises: a second sensor to generate a second signal in response to movement of the bumper relative to the body, the second signal varying linearly with movement of the bumper; The operation further includes calculating the value based on a first value and a second value, wherein the first value is based on the first signal and the second value is based on the second signal.
33. The mobile cleaning robot according to claim 32, in, The main body includes a left side, a right side, a front part, and a rear part; wherein the first sensor is adjacent to the right side and the second sensor is adjacent to the left side; and Wherein, the buffer is placed along the front of the robot and extends along at least a portion of the left side and at least a portion of the right side.
34. The mobile cleaning robot according to claim 28, in, The buffer being above the predetermined range indicates that the buffer is compressed to a greater extent than an amount of compression associated with the predetermined range.
35. The mobile cleaning robot according to claim 28, in, The operations also include controlling the robot to turn toward the wall surface in response to the value indicating that the bumper is below the predetermined range.
36. The mobile cleaning robot according to claim 28, in, The body also includes wheels; Wherein, the robot further comprises a detector associated with the wheel, the detector being used to detect the speed of the wheel; and Wherein controlling the robot includes controlling the robot based at least in part on the speed of the wheel being less than a predetermined speed and the value indicating that the bumper is outside of the predetermined range.
37. The mobile cleaning robot according to claim 28, in, The operations also include dynamically calibrating the value to a neutral position of the bumper relative to the body.
38. The mobile cleaning robot according to claim 37, in, Dynamically calibrating the value to a neutral position of the bumper includes determining a neutral position of the bumper relative to the body while the body robot moves around a floor surface without contacting the wall surface.
39. The mobile cleaning robot according to any one of claims 25 to 38, in, The body includes a left side, a right side, a front, and a rear, the bumper being positioned along the front of the body and extending along at least a portion of the left side and at least a portion of the right side; and Wherein, the robot further comprises: a first sensor adjacent to the right side to generate a first signal in response to movement of the bumper relative to the body; a second sensor adjacent to the left side to generate a second signal in response to movement of the bumper; and a third sensor to generate a third signal in response to the movement of the bumper, the third signal varying linearly with the movement of the bumper; Wherein, the third sensor is located between the left side and the right side, and the third sensor is adjacent to the front part.
40. The mobile cleaning robot according to claim 39, in, The first and second sensors are positioned to be responsive to movement of the bumper relative to the body along a first axis, and the third sensor is positioned to be responsive to movement of the bumper relative to the body along a second axis.
41. The mobile cleaning robot according to any one of claims 25 to 38, in: Advancing the robot along a first portion of the wall surface includes traversing a peripheral area of the room adjacent to the wall surface, and The operations also include controlling the robot to traverse an open area within a perimeter area of the room.
42. The mobile cleaning robot according to claim 41, in, The operations also include: After traversing the peripheral area and after controlling the robot to traverse at least a first portion of the open area, determining a second portion of the open area of the room that has not been traversed thereafter, and After determining that the second portion of the open area is not traversed, the robot is controlled to traverse the second portion of the open area.
43. The mobile cleaning robot of any one of claims 25-38, further comprising a sensor to provide a value indicative of an amount of compression of the bumper, in, Positioning the buffer within a predetermined range includes positioning the buffer within a predetermined range based on a value indicating an amount of compression of the buffer, Wherein controlling the robot includes controlling the robot in response to the value indicating the amount of compression of the bumper indicating contact between the bumper and the obstacle.
44. The mobile cleaning robot according to claim 43, in, The sensor is configured such that the value provided when the bumper is within the predetermined range varies relative to the value provided when the bumper is in a fully compressed position and relative to the value provided when the bumper is in a fully uncompressed position.
45. A mobile cleaning robot, include: a body movable relative to a wall surface; a bumper movable relative to the body between a fully uncompressed position and a fully compressed position; a cleaning pad removably attached to the bottom of the body, and A controller is used to execute instructions to perform operations, wherein the operations include: In response to the bumper being between a predetermined range of compression and a fully compressed position when the bumper contacts the wall surface, the robot is controlled to withdraw from the wall surface until the buffer is between the predetermined range and the fully uncompressed position, Rotate away from the wall surface, Engage the wall surface so that the bumper is within a predetermined range, and then Advancing along the wall surface, while positioning the bumper within a predetermined range, to maintain the angle between the robot and the wall surface and to maintain contact between the cleaning pad and the wall surface.
46. The mobile cleaning robot according to claim 45, in: Controlling the robot to advance along the wall surface includes controlling the robot so that at least one of the right side and the left side of the body is not parallel to the wall surface.
47. The mobile cleaning robot according to claim 45, in: The robot further includes a sensor that generates a signal in response to movement of the bumper relative to the body caused by contact between the bumper and the wall surface, the signal varying linearly with the movement of the bumper; and Advancing the robot along the wall surface includes advancing the robot along the wall surface based at least in part on a value indicative of an amount of compression of the bumper, the value being based on the signal and indicating that the bumper is within a predetermined range.
48. The mobile cleaning robot according to claim 47, in, The buffer being above the predetermined range indicates that the buffer is compressed to a greater extent than an amount of compression associated with the predetermined range.
49. The mobile cleaning robot according to claim 47, in, The operations also include controlling the robot to turn toward the wall surface in response to a value indicating that the bumper is below the predetermined range.
50. The mobile cleaning robot of any one of claims 45-49, further comprising a sensor to provide a value indicative of an amount of compression of the bumper, in, Positioning the buffer within the predetermined range includes positioning the buffer within the predetermined range based on a value indicating an amount of compression of the buffer, Wherein controlling the robot includes controlling the robot in response to the value indicating the amount of compression of the bumper indicating contact between the bumper and the obstacle.
51. The mobile cleaning robot according to claim 50, in, The sensor is configured such that the value provided when the bumper is within the predetermined range varies relative to the value provided when the bumper is in a fully compressed position and relative to the value provided when the bumper is in a fully uncompressed position.
52. A mobile cleaning robot, include: a drive system for moving the robot over the floor surface and relative to the wall surface; a buffer movable between an uncompressed position and a compressed position; a pad holder on a bottom of the robot, the pad holder configured to receive a cleaning pad that extends beyond the right and left sides of the robot and faces the floor surface; and A controller configured to cause the robot to advance along the wall surface in a wall following behavior while maintaining contact between a portion of the cleaning pad and the wall surface, while maintaining a position of the bumper within a range between an uncompressed position and a compressed position, and while maintaining a non-zero angle between the right or left side of the robot and the wall surface.
53. The robot according to claim 52, in, The configuration of the controller to advance the robot along the wall surface includes a configuration to adjust the rotational and translational speeds of the robot to maintain contact between the portion of the cleaning pad and the wall surface.
54. The robot according to claim 52, in, The non-zero angle between the right side or the left side of the robot and the wall surface is in the range of 1 degree to 20 degrees.
55. The robot according to claim 52, in, The non-zero angle between the right side or the left side of the robot and the wall surface is in the range of 5 degrees to 10 degrees.
56. The robot according to any one of claims 52-55 further includes a movable buffer, which defines a portion of the right side and a portion of the left side of the robot, and the buffer is configured to contact the wall surface and be in a partially compressed position within the range when the controller causes the robot to move along the wall surface in a wall tracking behavior.
57. The robot according to claim 56 further includes a sensor, wherein the sensor includes a first portion mounted to the bumper and a second portion mounted to the body of the robot on which the bumper is mounted, and the sensor is configured to generate a signal indicating a non-zero angle between the right side or left side of the robot and the wall surface.
58. The robot according to claim 56, in, The bumper is configured to rotate relative to a body of the robot on which the bumper is mounted while the controller causes the robot to advance along the wall surface in a wall following behavior.
59. The robot according to any one of claims 52-55, in, The configuration in which the controller advances the robot along the wall surface while maintaining a non-zero angle between a right side or a left side of the robot and the wall surface includes maintaining a non-zero angle between a forward driving direction of the robot and the wall surface.
60. The robot according to any one of claims 52-55, further comprising a sensor configured to generate a signal indicating a non-zero angle between the right side or the left side of the robot and the wall surface, the sensor being selected from the group consisting of a capacitive sensor, a Hall effect sensor, and an inductive sensor.
61. The robot according to claim 60, in, The sensor is positioned adjacent to a right side of the robot or a left side of the robot.
62. The robot according to any one of claims 52-55, further comprising a detector associated with a wheel of the robot, the detector being configured to detect a speed of the wheel, in, The controller is configured to cause the robot to advance along the wall surface, including a configuration to adjust a translation speed of the robot based on the detected speed of the wheels.
63. The robot according to any one of claims 52-55, in, The controller is configured to control the robot to perform area coverage behavior to cover an interior area of the room within an outer perimeter of the room, and A configuration in which the controller causes the robot to advance along a wall surface in a wall-following behavior includes a configuration in which the robot advances along an outer perimeter of a room after performing an area-covering behavior.
64. The robot according to claim 63, in, The controller is configured to navigate the robot to an untraversed portion of an interior area of the room after advancing the robot along an outer perimeter of the room.
65. A method for controlling a mobile cleaning robot, include: causing the robot to move along the wall surface in a wall-following behavior; and Maintaining contact between a portion of the robot's cleaning pad and the wall surface while advancing the robot along the wall surface in a wall following behavior, while maintaining a position of the robot's bumper within a range between an uncompressed position and a compressed position, and while maintaining a non-zero angle between the robot and the wall surface.
66. The method according to claim 65, in, Maintaining contact between the portion of the cleaning pad and the wall surface includes adjusting rotational and translational speeds of the robot to maintain contact between the portion of the cleaning pad and the wall surface.
67. The method according to claim 65, in, The non-zero angle between the robot and the wall surface is in the range of 1 degree to 20 degrees.
68. The method according to claim 65, in, The non-zero angle between the robot and the wall surface is in the range of 5 degrees to 10 degrees.
69. The method according to any one of claims 65 to 68, in, Maintaining a non-zero angle between the robot and the wall surface includes maintaining a movable bumper of the robot in a partially compressed position within the range while advancing the robot along the wall surface in a wall following behavior.
70. The method according to any one of claims 65 to 68, in, Maintaining a non-zero angle between the robot and the wall surface includes maintaining a non-zero angle between a forward drive direction of the robot and the wall surface.
71. The method according to any one of claims 65 to 68, in, Maintaining a non-zero angle between the robot and the wall surface includes adjusting a translation speed of the robot based on detecting a speed of wheels of the robot.
72. The method according to any one of claims 65-68, further comprising: include: causing the robot to navigate along a portion of the interior area of the room within the outer perimeter of the room before causing the robot to advance along the wall surface in a wall following behavior, and After advancing the robot along the wall surface in a wall following behavior, the robot is navigated to an untraversed portion of the interior area of the room.
73. A robot, include: a bumper movably mounted on a robot that is movable relative to a surface of an obstacle; and A controller is configured to execute instructions to perform operations, the operations comprising: advancing the robot along a first portion of a surface while maintaining a position of the bumper within a predetermined range between fully compressed and fully uncompressed states, and In response to the position of the bumper being outside of the range, redirecting a forward drive direction of the robot relative to a first portion of a surface, and The robot is advanced along a second portion of the surface that is angled relative to the first portion of the surface while maintaining the position of the bumper within the range.
74. The robot according to claim 73, in, Advancing the robot along a first portion of a surface includes advancing the robot along the first portion of a surface while maintaining a first non-zero angle between a forward drive direction of the robot and the first portion of the surface.
75. The robot according to claim 74, in, Advancing the robot along the second portion of the surface includes advancing the robot along the second portion of the surface while maintaining a second non-zero angle between a forward drive direction of the robot and the second portion of the surface.
76. The robot according to claim 75, in, The first non-zero angle and the second non-zero angle are within a range of 3 degrees and 20 degrees.
77. The robot according to any one of claims 73-76, in, Reorienting the forward drive direction of the robot relative to the first portion of the surface includes rotating the robot toward a second portion of the surface.
78. The robot according to claim 77, in, Rotating the robot toward the second portion of the surface includes rotating the robot away from the first portion of the surface.
79. The robot according to claim 78, in, Reorienting the forward drive direction of the robot relative to the first portion of the surface includes moving the robot backward away from the second portion of the surface before rotating the robot toward the second portion of the surface.
80. The robot according to any one of claims 73-76 further includes a sensor system, which is configured to generate data in response to the movement of the buffer relative to the robot, the data belonging to the first part indicates that the position of the buffer is between the fully compressed position of the buffer and the range, the data belonging to the second part indicates that the position of the buffer is within the range, and the data belonging to the third part indicates that the position of the buffer is between the range and the fully uncompressed position of the buffer.
81. The robot according to any one of claims 73-76, in, The operations include calibrating a neutral position of the bumper relative to the robot in response to the bumper being within another range where there is no contact between the bumper and the surface.
82. The robot according to any one of claims 73-76, in, Reorienting the forward drive direction of the robot relative to the first portion of the surface includes, in response to the position of the bumper being between the fully compressed position of the bumper and the range, moving the robot rearwardly and rotating the robot away from the first portion of the surface.
83. The robot according to any one of claims 73-76, in, Reorienting the forward drive direction of the robot relative to the first portion of the surface includes, in response to the position of the bumper being between a fully uncompressed position of the bumper and the range, rotating the robot toward the first portion of the surface.
84. The robot according to any one of claims 73-76, in, Maintaining the position of the buffer within the range includes maintaining a right portion of the buffer or a left portion of the buffer within the range.
85. A method for controlling a robot, the method include: advancing the robot along a first portion of the surface of the obstacle while maintaining a position of a bumper of the robot within a predetermined range between a fully compressed and a fully uncompressed state; reorienting a forward drive direction of the robot relative to a first portion of the surface in response to the position of the bumper being outside of the range; and The robot is advanced along a second portion of the surface that is angled relative to the first portion of the surface while maintaining the position of the bumper within the range.
86. The method according to claim 85, in, Advancing the robot along the first portion of the surface includes advancing the robot along the first portion of the surface while maintaining a first non-zero angle between a forward drive direction of the robot and the first portion of the surface.
87. The method according to claim 86, in, Advancing the robot along the second portion of the surface includes advancing the robot along the second portion of the surface while maintaining a second non-zero angle between a forward drive direction of the robot and the second portion of the surface.
88. The method according to claim 87, in, The first non-zero angle and the second non-zero angle are within a range of 3 degrees and 20 degrees.
89. The method according to any one of claims 85 to 88, in, Reorienting the forward drive direction of the robot relative to the first portion of the surface includes rotating the robot toward a second portion of the surface.
90. The method according to claim 89, in, Rotating the robot toward the second portion of the surface includes rotating the robot away from the first portion of the surface.
91. The method according to claim 90, in, Reorienting the forward drive direction of the robot relative to the first portion of the surface includes moving the robot backward away from the second portion of the surface before rotating the robot toward the second portion of the surface.
92. The method of any one of claims 85-88 further comprises calibrating a neutral position of the bumper in response to the bumper being within another range where there is no contact between the bumper and the surface.
93. The method according to any one of claims 85 to 88, in, Reorienting the forward drive direction of the robot relative to the first portion of the surface includes, in response to the position of the bumper being between the fully compressed position of the bumper and the range, moving the robot rearwardly and rotating the robot away from the first portion of the surface.
94. The method according to any one of claims 85 to 88, in, Reorienting the forward drive direction of the robot relative to the first portion of the surface includes, in response to the position of the bumper being between a fully uncompressed position of the bumper and the range, rotating the robot toward the first portion of the surface.
95. The method according to any one of claims 85 to 88, in, Maintaining the position of the buffer within the range includes maintaining a right portion of the buffer or a left portion of the buffer within the range.
Citation Information
Patent Citations
Cleaning robot
CN101313829A
Application of localization, positioning & navigation systems for robotic enabled mobile products
CN102083352A