Source: https://insight.rpxcorp.com/pat/US20040204792A1
Timestamp: 2019-05-23 04:39:58
Document Index: 293293491

Matched Legal Cases: ['Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60']

Patent US 20040204792A1
selecting a cleaning mode, the cleaning modes include a room cleaning mode and a localized cleaning mode, the localized cleaning mode includes doing a serpentine clean within a predetermined pattern; and
cleaning with the robot cleaner in the selected mode.
US 20150092019A1
US 9,787,912 B2
D751260S1
D737008S1
D744178S1
Cleaner dust canister
D744182S1
D744183S1
D745233S1
D745757S1
D752300S1
D744708S1
Robot cleaner body
D744709S1
D744181S1
D746005S1
D751777S1
OBSTACLE SENSOR AND ROBOT CLEANER HAVING THE SAME
US 20130076893A1
US 9,239,389 B2
US 1,133,537 A
Securing machine parts together with the aid of connecting pins
US 5,046,246 A
US 2,369,511 A
Filed 11/17/1943
Winkler Wynne G.
Visible record loose-leaf binder
US 2,352,486 A
Filed 07/09/1943
Lotter Adolph G.
US 2,355,523 A
Filed 10/30/1942
Gartin Elmer G.
US 2,344,747 A
Filed 07/15/1940
Sperry Donald E., Landess Adam E.
2. The method of claim 1, wherein the predetermined pattern is rectangular.
3. The method of claim 2, wherein the predetermined pattern is square.
4. The method of claim 1, wherein the room cleaning mode is a serpentine clean over the entire room.
5. The method of claim 1, wherein room cleaning mode includes object following.
6. The method of claim 1, wherein the robot cleaner is a robotic vacuum cleaner.
7. The method of claim 1, wherein a button on the robot cleaner is used for selecting the localized cleaning mode.
8. The method of claim 1, wherein a remote device is used to select the localized cleaning mode.
9. The method of claim 1, wherein a dirt sensor on the robot cleaner is used for determining to switch to a localized cleaning mode.
a cleaning unit on the robot cleaner;
a processor to control the robot cleaner in a selected cleaning mode, the cleaning modes include a room cleaning mode and a localized cleaning mode, the localized cleaning mode includes doing a serpentine clean within a predetermined pattern.
11. The robot cleaner of claim 10, wherein the predetermined pattern is rectangular.
12. The robot cleaner of claim 11, wherein the predetermined pattern is square.
13. The robot cleaner of claim 10, wherein the room cleaning mode is a serpentine clean over the entire room.
14. The robot cleaner of claim 10, wherein room cleaning mode includes object following.
15. The robot cleaner of claim 10, wherein the robot cleaner is a robotic vacuum cleaner.
16. The robot cleaner of claim 10, wherein a button on the robot cleaner is used for selecting the localized cleaning mode.
17. The robot cleaner of claim 10, wherein a remote device is used to select the localized cleaning mode.
18. The robot cleaner of claim 10, wherein a dirt sensor on the robot cleaner is used for determining to switch to a localized cleaning mode.
19. A method of using a robot cleaner to clean a room, comprising:
cleaning a room in a serpentine pattern;
detecting an obstacle in the room;
going into an object following mode to avoid the obstacle; and
resuming the serpentine pattern clean.
20. The method of claim 19, wherein serpentine pattern goes from wall to wall.
21. The method of claim 19, wherein the object is a piece of furniture.
22. The method of claim 19, wherein the object is a wall.
23. The method of claim 19, wherein the object following mode keeps the robot cleaner a fixed distance from the object.
24. The method of claim 19, wherein the object is in the middle of the room.
25. The method of claim 24, wherein the robot cleaner follows the object until the robot cleaner can continue a path segment of the serpentine clean on the other side of the object.
26. The method of claim 19, wherein the serpentine clean is such that the cleaning for one path segment overlaps with the cleaning for the next path segment.
27. The method of claim 19, wherein the robot cleaner keeps track of what portions of the room has been cleaned.
a motion unit to move the robot cleaner;
sensor unit to detect obstacles;
a processor to control the robot cleaner to clean the room in a serpentine pattern;
the processor causing the robot cleaner to go into an object following mode to avoid an obstacle detected by the sensor unit, the processor causing the robot cleaner to resume the serpentine pattern clean once the obstacle is avoided.
29. The robot cleaner of claim 28, wherein serpentine pattern goes from wall to wall.
30. The robot cleaner of claim 28, wherein the object is a piece of furniture.
31. The robot cleaner of claim 28, wherein the object is a wall.
32. The robot cleaner of claim 28, wherein the object following mode keeps the robot cleaner a fixed distance from the object.
33. The robot cleaner of claim 28, wherein the object is in the middle of the room.
34. The robot cleaner of claim 33, wherein the robot cleaner follows the object until the robot cleaner can continue a path segment of the serpentine clean on the other side of the object.
35. The robot cleaner of claim 28, wherein the serpentine clean is such that the cleaning for one path segment overlaps with the cleaning for the next path segment.
36. The robot cleaner of claim 28, wherein the robot cleaner keeps track of what portions of the room has been cleaned.
37. A method of using a robot cleaner to clean a room, comprising:
detecting an a descending stairway with an edge sensor, the edge sensor unit including an emitter and a detector, the detector detecting less reflected energy when the sensor is positioned over the descending stairway;
avoiding the descending stairway; and
38. The method of claim 37, wherein serpentine pattern goes from wall to wall.
39. The method of claim 37, wherein the detector receives substantially no reflected energy when the sensor is positioned over the descending stairway.
40. The method of claim 37, wherein the edge sensor is a convergent mode sensor.
41. The method of claim 40, wherein the convergent mode sensor is focused on the floor.
42. The method of claim 37, wherein the edge sensor is positioned at the periphery of the robot cleaner.
43. The method of claim 37, wherein the serpentine clean is such that the cleaning for one path segment overlaps with the cleaning for the next path segment.
44. The method of claim 37, wherein the robot cleaner keeps track of what portions of the room has been cleaned.
45. The method of claim 37, wherein the emitter emits infrared radiation.
46. A robot cleaner comprising:
sensor unit to detect descending stairways, the sensor unit including an emitter and a detector, the detector detecting less reflected energy when the detector is positioned over a descending stairway;
the processor causing the robot cleaner to avoid a detected descending stairway, the processor causing the robot cleaner to resume the serpentine pattern clean once the descending stairway is avoided.
View Dependent Claims (47, 48, 49, 50, 51, 52, 53, 54)
47. The robot cleaner of claim 46, wherein serpentine pattern goes from wall to wall.
48. The robot cleaner of claim 46, wherein the detector receives substantially no reflected energy when the sensor is positioned over the descending stairway.
49. The robot cleaner of claim 46, wherein the edge sensor is a convergent mode sensor.
50. The robot cleaner of claim 49, wherein the convergent mode sensor is focused on the floor.
51. The robot cleaner of claim 46, wherein the edge sensor is positioned at the periphery of the robot cleaner.
52. The robot cleaner of claim 46, wherein the serpentine clean is such that the cleaning for one path segment overlaps with the cleaning for the next path segment.
53. The robot cleaner of claim 46, wherein the robot cleaner keeps track of what portions of the room has been cleaned.
54. The robot cleaner of claim 46, wherein the emitter emits infrared radiation.
55. A robot comprising:
an element normally in a first position, the element being movable to a second position by contact with an object;
an emitter that transmits electromagnetic energy;
a detector that detects electromagnetic energy, wherein when the element is in the first position the detector detects electromagnetic energy from the emitter, and when the element is in the second position the detector detects less electromagnetic energy from the detector such that the contact condition can be determined; and
a processor operably connected to the detector to modify the operation of the robot when the contact condition is determined.
56. The robot of claim 55, wherein the element is a bumper.
57. The robot of claim 55, wherein in the second position the element blocks the energy from the emitter.
58. The robot of claim 55, wherein in the first position the element does not block the energy from the emitter.
59. The robot of claim 55, wherein the element is biased in the first position by a spring.
60. A method of operating a robot comprising:
radiating electromagnetic energy from an emitter;
detecting electromagnetic energy with a detector, wherein an element is normally in a first position, the element being movable to a second position by contact with an object, wherein when the element is in the first position the detector detects electromagnetic energy from the emitter, and when the element is in the second position the detector detects less electromagnetic energy from the detector such that the contact condition can be determined; and
modifying the operation of the robot in response to the contact condition.
61. The method of claim 60, wherein the element is a bumper.
62. The method of claim 60, wherein in the second position the element blocks the energy from the emitter.
63. The method of claim 60, wherein in the first position the element does not block the energy from the emitter
64. The method of claim 60, wherein the element is biased in the first position by a spring.
65. A tactile sensor for a robot comprising:
an emitter that transmits electromagnetic energy; and
a detector that detects electromagnetic energy, wherein when the element is in the first position the detector detects electromagnetic energy from the emitter, and when the element is in the second position the detector detects less electromagnetic energy from the detector such that the contact condition can be determined.
66. The tactile sensor of claim 65, wherein the element is a bumper.
67. The tactile sensor of claim 65, wherein in the second position the element blocks the energy from the emitter.
68. The tactile sensor of claim 65, wherein in the first position the element does not block the energy from the emitter
69. The tactile sensor of claim 65, wherein the element is biased in the first position by a spring.
[0001] This application claims priority to U.S. Patent Provisional Application No. 60/454,934 filed Mar. 14, 2003; U.S. Provisional Application No. 60/518,756 filed Nov. 10, 2003; U.S. Provisional Application No. 60/518,763 filed Nov. 10, 2003; U.S. Provisional Application No. 60/526,868 filed Dec. 4, 2003; U.S. Provisional Application No. 60/527,021 filed Dec. 4, 2003 and U.S. Provisional Application No. 60/526,805 filed Dec. 4, 2003.
[0005] <cross-reference>FIG. 1A</cross-reference> is a functional diagram of one embodiment of a robot cleaner of the present invention.
[0006] <cross-reference>FIG. 1B</cross-reference> is a functional diagram of a robot cleaner of an alternate embodiment of the present invention.
[0007] <cross-reference>FIG. 2A</cross-reference> is a top view of a robot cleaner of one embodiment of the present invention.
[0008] <cross-reference>FIG. 2B</cross-reference> is a bottom view of the robot cleaner of <cross-reference>FIG. 2A</cross-reference>.
[0009] <cross-reference>FIG. 2C</cross-reference> is another top view of the robot cleaner of <cross-reference>FIG. 2A</cross-reference>.
[0010] <cross-reference>FIG. 2D</cross-reference> is a view of a removable particulate storage unit of one embedment of the present invention.
[0011] <cross-reference>FIG. 2E</cross-reference> is a view of a robot cleaner without the removable particulate storage unit.
[0012] <cross-reference>FIG. 2F</cross-reference> illustrates a remote control of one embodiment of the present invention.
[0013] <cross-reference>FIG. 3</cross-reference> is a diagram illustrating software modules of one embodiment of the present invention.
[0014] <cross-reference>FIG. 4</cross-reference> is a diagram that illustrates a serpentine room clean of one embodiment of the present invention.
[0015] <cross-reference>FIG. 5</cross-reference> is a diagram that illustrates an object following mode of one embodiment of the present invention.
[0016] <cross-reference>FIG. 6</cross-reference> is a diagram that illustrates an object following mode of another embodiment of the present invention.
[0017] <cross-reference>FIG. 7</cross-reference> is a diagram that illustrates a serpentine localized clean of one embodiment of the present invention.
[0018] <cross-reference>FIGS. 8A and 8B</cross-reference> illustrate the operation of a bumper sensor of one embodiment of the present invention.
[0019] <cross-reference>FIGS. 9A and 9B</cross-reference> illustrate embodiments of connection port for use with a robot cleaner of one embodiment of the present invention.
[0020] <cross-reference>FIG. 9C</cross-reference> illustrates an embodiment of a robot vacuum with an attached hose and crevice tool.
[0021] <cross-reference>FIG. 10A and 10B</cross-reference> illustrate and edge detector units of one embodiment of the present invention.
[0022] <cross-reference>FIG. 11A</cross-reference> is a diagram illustrating the path of a robot cleaner of one embodiment within a bubgrid.
[0023] <cross-reference>FIG. 11B</cross-reference> is a diagram illustrating the path of the robot cleaner of one embodiment within a subgrid when there is an obstacle in the subgrid.
[0024] <cross-reference>FIG. 11C</cross-reference> is a diagram illustrating the path of a robot cleaner of one embodiment to clean previously unclean regions of the subgrid.
[0025] <cross-reference>FIG. 11D</cross-reference> is a diagram illustrating another example of the path of a robot cleaner of one embodiment to clean previously uncleaned regions of the subgrid.
[0026] <cross-reference>FIG. 12A and 12B</cross-reference> are diagrams of a state machine for the control of a robot cleaner of one embodiment of the present invention.
[0027] <cross-reference>FIG. 13</cross-reference> is a diagram illustrating the operation of the robot cleaner following the state machine of <cross-reference>FIGS. 12A and 12B</cross-reference>.
[0028] <cross-reference>FIG. 14</cross-reference> is a diagram illustrating subgrids within a room.
[0029] <cross-reference>FIG. 15</cross-reference> is a diagram illustrating overlap in subgrids of one embodiment in the present invention.
[0030] <cross-reference>FIG. 16A</cross-reference> is a diagram that illustrates a subgrid map for a robot cleaner of one embodiment of the present invention.
[0031] <cross-reference>FIG. 16B</cross-reference> is a diagram illustrating a room map for robot cleaner of one embodiment of the present invention.
[0032] <cross-reference>FIG. 1A</cross-reference> is a functional diagram of a robot cleaner <highlight><bold>100</bold></highlight> of an exemplary embodiment of the present invention. In this example, the robot cleaner <highlight><bold>100</bold></highlight> includes a cleaning unit <highlight><bold>102</bold></highlight> which can be any type of cleaning unit. The cleaning unit can clean any object, such as a carpeted or uncarpeted floor. One cleaning unit comprises a vacuum, with or without a sweeper. Alternately, the cleaning unit can comprise a sweeper, duster or any other type of cleaning unit.
[0033] The robot cleaner <highlight><bold>100</bold></highlight> includes a processor <highlight><bold>104</bold></highlight> for receiving information from sensors and producing control commands for the robot cleaner <highlight><bold>100</bold></highlight>. For the purposes of this application, the term “processor” includes one or more processor. Any type of processor can be used. The processor <highlight><bold>104</bold></highlight> is associated with a memory <highlight><bold>105</bold></highlight> which can store program code, internal maps and other state data for the robot cleaner <highlight><bold>100</bold></highlight>. The processor <highlight><bold>104</bold></highlight>, in one embodiment, is mounted to a circuit board that connects the processor <highlight><bold>104</bold></highlight> to wires for the sensors, power and motor controllers.
[0034] One embodiment of the present invention is a robot cleaner <highlight><bold>100</bold></highlight> that includes a germicidal ultraviolet lamp <highlight><bold>166</bold></highlight>. The germicidal ultraviolet lamp can emit radiation when it is energized. The UV lamp <highlight><bold>166</bold></highlight> can be part of or separate from the cleaning unit <highlight><bold>102</bold></highlight>. The germicidal lamp <highlight><bold>166</bold></highlight> can be a UV-C lamp that preferable emits radiation having wavelength of 254 nanometers. This wavelength is effective in diminishing or destroying bacteria, common germs and viruses to which the lamp light is exposed. Germicidal UV lamps <highlight><bold>166</bold></highlight> are commercially available. The germicidal lamp is not limited to UV lamps having wavelength of 245 nanometers. Other UV lamps with germicidal properties could also be used.
[0037] In one embodiment as described below, the cleaning unit <highlight><bold>102</bold></highlight> includes an electrostatic filter <highlight><bold>162</bold></highlight>. The germicidal ultraviolet lamp <highlight><bold>166</bold></highlight> can be positioned to irradiate an airflow before the electrostatic filter. A mechanical filter <highlight><bold>164</bold></highlight> can also be used. The mechanical filter can be a vacuum cleaner bag. In one embodiment, the robot cleaner is configured to preclude human viewing of UV light emitted directly from the germicidal ultraviolet lamp. When the germicidal ultraviolet lamp is directed towards the floor, the lamp can be placed in a recessed cavity so that the lamp light does not leak out the side of the robot cleaner, but goes directly towards the floor surface. A protective covering for the lamp can be used in this embodiment to prevent the lamp from contacting a thick rug or other raised surface.
[0039] The vacuum <highlight><bold>116</bold></highlight> of this example includes an inlet (not shown). A fan (not shown) can be placed before or after the mechanical filter <highlight><bold>164</bold></highlight>. In one embodiment, the mechanical filter <highlight><bold>164</bold></highlight> is a vacuum cleaner bag, which provides for particulate storage <highlight><bold>118</bold></highlight>. The vacuum cleaner <highlight><bold>100</bold></highlight> can also includes an electrostatic filter (electrostatic precipitator) <highlight><bold>162</bold></highlight> to filter additional particulate from an airflow. The airflow goes out the outlet (not shown). In one embodiment, the electrostatic filter includes an emitter which creates ions and a collector which attracts particulate matter.
[0043] The electrostatic filter can be attached to a high voltage generator (not shown), such as a high voltage pulse generator, coupled between the emitter and the collector of the electrostatic filter <highlight><bold>162</bold></highlight>. The high voltage generator can receive low voltage input from a wall socket or battery <highlight><bold>141</bold></highlight> to produce a high voltage between the emitter and the collector. High voltage pulses with a number of different possible duty cycles can be used. In one embodiment, a positive output of the high voltage generator is attached to the emitter and a negative output is attached to the collector. The opposite polarity can also be used. When voltage from a high voltage generator is coupled across the emitter and the collector, it is believed that a plasma like field is created surrounding the emitter. This electric field ionizes the ambient air between the edmitter and collector. Particulate entrained in the airflow can become electrostaticly attached to the surface of the collector. The electrostatic filter <highlight><bold>162</bold></highlight> and high voltage generator can be designed to produce negative ions for the room and desirable concentrations of ozone. The collector of the electrostatic filter can be removable to allow cleaning of the particulate material off of the collector.
[0044] The electrostatic filter should be positioned in a region where the airflow in units of distance per time is not so excessive so as to prevent particulate from collecting on the collector or allow the particulate to be swept off the collector. In one embodiment, the airflow is preferably below 500 feet per minute in the region of the electrostatic filter. In one embodiment, the airflow in the electrostatic filter region is 400 ft/min or less. In one embodiment, the cross-section of electrostatic filter region is greater than the cross-section of the inlet to reduce the distance per time airflow rate. In the <cross-reference>FIG. 3</cross-reference> example, a 1.25 inch diameter tube may have a distance per time flow rate of 6000 feet per minute, setting the diameter of the electrostatic filter region to a 4.8 inch diameter reduces the distance per time airflow to 400 feet per minute, which is acceptable for the operation of the electrostatic filter.
[0046] One embodiment of the present invention is a robot cleaner that uses a cleaning unit including a cleaning pad. This embodiment is shown in <cross-reference>FIG. 1B</cross-reference>. The cleaning unit <highlight><bold>102</bold></highlight> of this example includes a cleaning pad <highlight><bold>170</bold></highlight>. The cleaning pad <highlight><bold>170</bold></highlight> can be held in place such that when the robot cleaner <highlight><bold>100</bold></highlight> operates the cleaning pad <highlight><bold>170</bold></highlight> contacts the floor surface. The cleaning pad can be a sheet of cleaning material. In one embodiment, the cleaning pad is a cloth material which uses static electricity to attract dust. Alternately, the cleaning pad is an absorbent material which absorbs water or a cleaning solution. The cleaning material can be replacable by the user. The robot cleaner can indicate when to replace the claning material based on cleaning time of sensors.
[0047] In one embodiment, the cleaning unit <highlight><bold>102</bold></highlight> also includes a cleaning solution dispenser <highlight><bold>172</bold></highlight>. The cleaning unit dispenser <highlight><bold>172</bold></highlight> can be used to squirt a cleaning solution onto the floor in the path of the robot cleaner in front of the cleaning pad <highlight><bold>170</bold></highlight>. The robot cleaner can then wipe the floor with the cleaning pad which contains the cleaning solutions provided by the cleaning solution dispenser <highlight><bold>172</bold></highlight>. In one embodiment, the processor <highlight><bold>104</bold></highlight> can be used to determine when to dispense the cleaning solution. A sensor such as a surface type sensor <highlight><bold>174</bold></highlight> can be used to determine whether the floor is a hard surface, such as a hardwood floor or linoleum or a soft surface such as a carpet. The surface type sensor <highlight><bold>174</bold></highlight> can be an optical detector, ultrasound detector or a mechanical detector. In one embodiment, the cleaning solution dispensing <highlight><bold>172</bold></highlight> is controlled by the user manually or by using a remote control signal to the robot cleaner <highlight><bold>100</bold></highlight> to dispense the cleaning solution.
[0050] The robot sensors <highlight><bold>112</bold></highlight> can include a camera. In one embodiment, the robot vacuum uses computer vision type image recognition. The camera can use a detector which producers a two dimensional array of image information. The camera can be a visible light camera, a thermal camera, an ultraviolet light camera, laser range finder, synthetic aperture radar or any other type of camera. Information from the camera can be processed using an image recognition system. Such a system can include algorithms for filtering out noise, compensating for illumination problems, enhancing images, defining lines, matching lines to models, extracting shapes and building 3D representation.
[0075] In the example of <cross-reference>FIG. 1A</cross-reference>, sensors for the robot cleaner <highlight><bold>100</bold></highlight> include front bumper sensors <highlight><bold>106</bold></highlight> and <highlight><bold>108</bold></highlight>. In one embodiment, as illustrated in <cross-reference>FIG. 8A and 8B</cross-reference> the front sensors use an optical emitter and detector rather than a mechanical switch. The use of more than one front bumper sensor allows the robot cleaner <highlight><bold>100</bold></highlight> to differentiate between different types of obstacles that the robot encounters. For example, the triggering of a single front sensor may indicate that the robot cleaner <highlight><bold>100</bold></highlight> has run into a small obstacle which can be maneuvered around. When both front sensors indicate an obstacle, the robot cleaner <highlight><bold>100</bold></highlight> may have run into a wall or other large obstacle. In one embodiment, the robot cleaner <highlight><bold>100</bold></highlight> may begin an object following mode after contacting the wall.
[0076] In one embodiment, the cleaning unit <highlight><bold>102</bold></highlight> includes a sweeper <highlight><bold>114</bold></highlight> that sweeps up dirt and other particulate off of a carpeted or uncarpeted floor. The vacuum <highlight><bold>116</bold></highlight> can use a fan to draw up dirt and other particulate up to particulate storage <highlight><bold>118</bold></highlight>. The cleaning unit <highlight><bold>102</bold></highlight> can also include a motor or motors <highlight><bold>120</bold></highlight> for the sweeper <highlight><bold>114</bold></highlight> and for the fan used with the vacuum <highlight><bold>116</bold></highlight>.
[0078] <cross-reference>FIGS. 8A and 8B</cross-reference> illustrate an example of such a sensor. In <cross-reference>FIG. 8A</cross-reference>, the element <highlight><bold>800</bold></highlight> is biased in a first position where energy from the emitter <highlight><bold>802</bold></highlight> reaches the detector <highlight><bold>804</bold></highlight>. In <cross-reference>FIG. 8B</cross-reference>, after contact with an object, the element <highlight><bold>800</bold></highlight> is moved to a second position where energy from the emitter <highlight><bold>802</bold></highlight> is blocked from reaching the detector <highlight><bold>804</bold></highlight>. The element <highlight><bold>800</bold></highlight> can be a bumper sensor, such as bumper sensors <highlight><bold>106</bold></highlight> and <highlight><bold>108</bold></highlight> of the robot cleaner of <cross-reference>FIG. 2</cross-reference>. The element <highlight><bold>800</bold></highlight> can be biased in the first position by a spring (not shown).
[0079] <cross-reference>FIG. 4</cross-reference> illustrates a serpentine room clean. In this mode, the robot cleaner cleans the length of the room with north/south cleaning segments up to the walls. Incremental right (or left) cleaning segments can be done so that the next north/south segment touches or overlaps the last north/south cleaning segment. The width of the cleaning area produced by the cleaning unit of the robot cleaner is related to the level of overlap. Serpentine cleans reduce the requirement to maintain an internal map.
[0080] The serpentine clean can be done with sharp transitions between horizontal and vertical segments by stoping the robot cleaner at the end of a segment and rotating the robot cleaner to the direction of the next segment. Alternately, the serpentine clean can have curved angles by turning the robot cleaner while the robot cleaner is still moving for a gradual transition from one segment to the next.
[0082] <cross-reference>FIG. 5</cross-reference> illustrates an example in which a serpentine room clean is interrupted by the detection of an obstacle <highlight><bold>502</bold></highlight>, such as a piece of furniture in the middle of the room or a wall. An object following mode is entered to avoid the obstacle. The object following mode can attempt to keep the robot cleaner a fixed distance from the object. In the example of <cross-reference>FIG. 5</cross-reference>, the robot cleaner cleans on one side of the obstacle <highlight><bold>502</bold></highlight> and then cleans on the other side of the obstacle <highlight><bold>502</bold></highlight>.
[0083] The robot cleaner can keep track of the cleaned areas of a room by storing a map of the cleaned areas. The map can be created by keeping track of the robot cleaner's position.
[0084] <cross-reference>FIG. 6</cross-reference> shows a case where the robot cleaner follows the object <highlight><bold>602</bold></highlight> until the robot cleaner can continue a path segment of the serpentine clean on the other side of the object <highlight><bold>602</bold></highlight>. The robot cleaner can use the object following mode to get to the other side of the obstacle.
[0085] The object following sensors <highlight><bold>150</bold></highlight> and <highlight><bold>152</bold></highlight> of <cross-reference>FIG. 1</cross-reference> can be sonar, infrared or another type of sensor. Processor <highlight><bold>104</bold></highlight> can control the robot cleaner to clean the room in a serpentine pattern, go into an object following mode to avoid an obstacle detected by the sensor unit, and cause the robot cleaner to resume the serpentine pattern clean once the obstacle is avoided.
[0088] <cross-reference>FIG. 7</cross-reference> shows an example of a localized clean. In the example of <cross-reference>FIG. 7</cross-reference>, the cleaning starts from the center of the localized clean region. In an alternate embodiment, the robot cleaner moves to a corner to start the localized clean. The localized cleaning region can be rectangular, square or any other shape. The room cleaning mode can be a serpentine clean over the entire room and can include object following.
[0089] The room cleaning mode can be selected by a button on the input <highlight><bold>140</bold></highlight> of <cross-reference>FIG. 1</cross-reference> or by using a remote control. In one embodiment, a particulate detector on the robot cleaner can be used to determine when to switch to a localized cleaning mode. In one embodiment, the processor <highlight><bold>104</bold></highlight> can be used to control the robot cleaner in the selected cleaning mode.
[0091] <cross-reference>FIGS. 10A and 10B</cross-reference> illustrate edge detectors for descending stairways. <cross-reference>FIG. 10A</cross-reference> shows a diffuse sensors over a floor and over a descending stairway. <cross-reference>FIG. 10B</cross-reference> shows convergent mode sensors over a floor and over a descending stairway. In a convergent mode sensor, only energy reflected from a finite intersection region will be detected. The finite intersection region can be positioned at the floor (focused on the floor). When the convergent mode sensor is over the descending stairway, substantially no reflected energy is detected.
[0092] As shown in <cross-reference>FIG. 1</cross-reference>, the edge sensors <highlight><bold>154</bold></highlight> and <highlight><bold>156</bold></highlight> can be positioned at the periphery of the robot cleaner. The edge sensors can be infrared or other types of sensors. In one embodiment, processor <highlight><bold>104</bold></highlight> can control the robot cleaner to clean the room in a serpentine pattern; cause the robot cleaner to avoid a detected descending stairway, and cause the robot cleaner to resume the serpentine pattern clean once the descending stairway is avoided.
[0093] One embodiment of the present invention includes selecting a floor type mode. The floor type modes including a hard surface mode and a soft surface mode. Operation in the soft surface mode includes rotating a sweeper, such as sweeper <highlight><bold>104</bold></highlight> of <cross-reference>FIG. 1</cross-reference>, more than in the hard surface mode. The robot cleaner cleans in the selected floor type mode. The hard surface mode avoids excessive noise that can be associated with a sweeper contacting a wood or other hard surface.
[0094] In the hard surface mode, the sweeper can be off or operate at a reduced speed. The soft surface mode can be a carpet cleaning mode. The selection of the floor type mode can be done by pressing a button on the robot cleaner or on a remote control. Alternately, a floor sensor such as a vibration sensor, a mechanical sensor, or an optical sensor, can be used to select between the floor type modes. Processor <highlight><bold>104</bold></highlight> can be used to control the robot cleaner in the selected floor type mode.
[0096] The supplemental cleaning element can connect to a connection port. <cross-reference>FIG. 9A</cross-reference> illustrates a connection port <highlight><bold>902</bold></highlight> on the top of the robot cleaner. <cross-reference>FIG. 9B</cross-reference> illustrates a connection port <highlight><bold>904</bold></highlight> on the bottom of the robot cleaner adjacent to the normal mode vacuum inlet. Connecting the supplemental cleaning element to the connection port can result in the normal mode vacuum inlet being mechanically or electromechanically closed. A part of the supplemental cleaning element or connection port can close off the normal mode vacuum inlet. Alternately, the supplemental cleaning element can cover the normal mode vacuum inlet on the bottom of the robot cleaner.
[0097] As shown in <cross-reference>FIG. 1</cross-reference>, the robot cleaner can have a handle, such as handle <highlight><bold>160</bold></highlight> of <cross-reference>FIG. 1</cross-reference>, for holding the robot cleaner while cleaning with the supplemental cleaning unit. In the example of <cross-reference>FIG. 1</cross-reference>, the handle <highlight><bold>160</bold></highlight> is part of the edge of the robot cleaner.
[0099] Other sensors <highlight><bold>112</bold></highlight> can also be used for obstacle detection. These other sensors <highlight><bold>112</bold></highlight> can include ultrasonic sensors, infrared (IR) sensors, laser ranging sensors and/or camera-based sensors. The other sensors can be used instead of, or as a complement to, the front bumper sensors.
[0100] In one embodiment, the robot cleaner <highlight><bold>100</bold></highlight> is able to detect an entangled condition. The processor can monitor the robot cleaner to detect the entangled condition and then adjust the operation of the robot cleaner to remove the entangled condition. Robot cleaners can become entangled at the sweeper or drive wheels <highlight><bold>120</bold></highlight> and <highlight><bold>122</bold></highlight>. The entangled condition may be caused by a rug, string or other objects in a room.
[0101] In the example of <cross-reference>FIG. 1</cross-reference>, motor <highlight><bold>120</bold></highlight> drives the sweeper <highlight><bold>114</bold></highlight> and motors <highlight><bold>124</bold></highlight> and <highlight><bold>126</bold></highlight> drive the wheels <highlight><bold>120</bold></highlight> and <highlight><bold>122</bold></highlight>. The motors driving the wheels and sweeper will tend to draw a larger amount or spike in the current when the motor shaft is stalled or stopped. A back electromotive force (EMF) is created when the motor is turned by an applied voltage. The back EMF reduces the voltage seen by the motor and thus reduces the current drawn. When a rise or spike in the current is sensed at the motor, the stall in the drive wheel, and thus the entanglement condition, can be determined.
[0103] In one embodiment, the current drawn by a motor of the robot cleaner is monitored using a pin of a motor driver chip. The motor driver chip may include a pin that supplies a current proportional to the current through the motor. This current can be converted into a voltage by the use of a resistor or other means. This voltage can be converted in an analog-to-digital (A/D) converter and input to the processor <highlight><bold>104</bold></highlight>. An example of a motor diver chip that includes such a current pin is the LM120H-Bridge motor diver chip. Other means to sense a current through the motor can alternately be used.
[0104] In one embodiment, when an entangled condition is sensed, the processor adjusts the operation of the robot cleaner to remove the entangled condition. For example, the power to the sweeper can be turned off and/or the robot cleaner <highlight><bold>100</bold></highlight> can be moved backward to remove the entangled condition. Alternately, the direction of the sweeper can be reversed. Once the entangled condition is removed, the operation of the robot cleaner <highlight><bold>100</bold></highlight> can proceed. If one or more entanglements occur at a location, an obstacle can be mapped for that location and that location can be avoided.
[0105] In one embodiment, sensors are used to detect the position of the robot cleaner. In the example of <cross-reference>FIG. 1</cross-reference>, sensors associated with wheels <highlight><bold>120</bold></highlight> and <highlight><bold>122</bold></highlight> can be used to determine the position of the robot. The sensors can sense the revolution of the wheels. Each unit of revolution corresponds to a linear distance that the treads of wheels <highlight><bold>120</bold></highlight> and <highlight><bold>122</bold></highlight> have traveled. This information can be used to determine the location and orientation of the robot cleaner. In an alternate embodiment, separate encoder wheels are used.
[0106] In one embodiment, optical quadrature encoders are used to track the position and rotation of the wheels <highlight><bold>120</bold></highlight> and <highlight><bold>122</bold></highlight> and thus give information related to the position of the robot cleaner <highlight><bold>100</bold></highlight>.
[0107] In one embodiment, a particulate sensor <highlight><bold>135</bold></highlight> is used to detect the level of particulate cleaned or encountered by the robot cleaner <highlight><bold>100</bold></highlight>. The operation of the robot cleaner <highlight><bold>100</bold></highlight> can be modified in response to a detected level of particulate. For example, in response to a high detected level of particulate, the robot cleaner can more thoroughly clean the current location. For example, the robot cleaner can slow down, back up or cause more overlap with previously cleaned regions or do a localized clean. When a low level of particulate is sensed, the current location may be cleaned less thoroughly. For example, the robot can be sped up or the overlap reduced.
[0110] In one embodiment, a remote control unit is used. Signals from the remote control (not shown) received by remote control sensor <highlight><bold>138</bold></highlight> are decoded by processor <highlight><bold>104</bold></highlight> and used to control the operation of the robot cleaner <highlight><bold>100</bold></highlight>.
[0113] In the example of <cross-reference>FIG. 1</cross-reference>, the robot cleaner <highlight><bold>100</bold></highlight> includes a battery <highlight><bold>141</bold></highlight> which is used to power the operation of the cleaning unit <highlight><bold>110</bold></highlight>, the motors <highlight><bold>124</bold></highlight> and <highlight><bold>126</bold></highlight>, the processor <highlight><bold>104</bold></highlight> and any other element that requires power. Battery management unit <highlight><bold>142</bold></highlight> under control of the processor <highlight><bold>104</bold></highlight> controls the supply of power to the elements of the robot cleaner <highlight><bold>100</bold></highlight>. In one embodiment, the robot cleaner <highlight><bold>100</bold></highlight> can be put into a reduced power mode. In one example, the reduced power mode involves turning all or parts of the cleaning unit <highlight><bold>102</bold></highlight> off. For example, the vacuum and/or the sweeper can be turned off in the reduced power mode. Alternately, the cleaning unit can be put into a mode that uses less power. The processor <highlight><bold>104</bold></highlight> can automatically put the robot cleaner in a reduced power mode when the processor <highlight><bold>104</bold></highlight> determines that the robot cleaner <highlight><bold>110</bold></highlight> is in a region that has been cleaned. Indications of the cleaned regions can be stored in an internal map. The internal map can be used to determine the cleaned regions for setting the reduced power mode. A description of an internal map constructed by the robot cleaner <highlight><bold>110</bold></highlight> is given below. Power management using the reduced power mode can save battery life.
[0114] Using indications of the cleaned regions within a room, such as using an internal map, can also allow the robot cleaner <highlight><bold>110</bold></highlight> to avoid randomly re-cleaning regions of a room. This also reduces the cleaning time. If the power consumption is kept low using such techniques, an inexpensive battery or a more effective but energy-hungry cleaning unit can be used.
[0115] In one embodiment, the robot cleaner <highlight><bold>100</bold></highlight> has a user input element <highlight><bold>104</bold></highlight> on the case of the robot cleaner <highlight><bold>110</bold></highlight>. The user input element <highlight><bold>104</bold></highlight> allows for the user to input the size of the room, room clutter, the dirt level, or other indications concerning the room. As discussed above, the size of the room can affect the operation of the robot cleaner.
[0116] In one embodiment, additional positioning sensors (not shown) are used as an alternate or supplement to the wheel encoders for determining the position of the robot cleaner <highlight><bold>100</bold></highlight>. These additional positioning sensors can include gyroscopes, compasses and global positioning system (GPS) based units.
[0117] <cross-reference>FIG. 2A</cross-reference> illustrates an illustration of the top view of the robot cleaner in one embodiment. Shown, in this embodiment are wheels <highlight><bold>202</bold></highlight> and <highlight><bold>204</bold></highlight>, front bumper <highlight><bold>206</bold></highlight> which contains the bumper sensors, removable particulate section <highlight><bold>208</bold></highlight>, a handle <highlight><bold>210</bold></highlight>, and <highlight><bold>212</bold></highlight> input buttons with indicator lights. <cross-reference>FIG. 2B</cross-reference> illustrates the bottom of an exemplary robot cleaner. Shown in this view is sweeper <highlight><bold>216</bold></highlight>, vacuum inlet <highlight><bold>218</bold></highlight>, the battery compartment <highlight><bold>220</bold></highlight>, bottom roller <highlight><bold>222</bold></highlight>, bumper sensors <highlight><bold>224</bold></highlight> and <highlight><bold>226</bold></highlight>, and edge detection sensors <highlight><bold>228</bold></highlight> and <highlight><bold>230</bold></highlight>.
[0118] <cross-reference>FIG. 2C</cross-reference> illustrates a perspective view of a robot cleaner. <cross-reference>FIG. 2D</cross-reference> illustrates the removable particulate section <highlight><bold>208</bold></highlight> with a port <highlight><bold>224</bold></highlight> for connecting to the vacuum. <cross-reference>FIG. 2E</cross-reference> illustrates the remainder of the robot vacuum with the particulate container <highlight><bold>208</bold></highlight> removed showing the outlet <highlight><bold>226</bold></highlight> to the vacuum fan and the inlet <highlight><bold>228</bold></highlight> to the bottom of the vacuum cleaner.
[0119] <cross-reference>FIG. 2F</cross-reference> illustrates a remote control including a number of control buttons <highlight><bold>230</bold></highlight> and a remote control wheel <highlight><bold>232</bold></highlight> for remotely steering the robot cleaner. In one embodiment, the signals from the remote control are transferred to a sensor on the robot cleaner to provide the information that the robot cleaner can use during its operations.
[0120] <cross-reference>FIG. 3</cross-reference> illustrates control operations of the robot cleaner. A user input device <highlight><bold>302</bold></highlight> such as remote control <highlight><bold>304</bold></highlight> or push button input <highlight><bold>306</bold></highlight> on the top of the robot cleaner can be used to provide user state input <highlight><bold>304</bold></highlight>. The user state input <highlight><bold>304</bold></highlight> can be stored along with other memory used by the robot cleaner, such as mapping information. In this example, the state information includes a hard/soft floor indication <highlight><bold>306</bold></highlight>, an on/off indication <highlight><bold>308</bold></highlight>, a localized clean room indication <highlight><bold>310</bold></highlight>, a cleaning time indication <highlight><bold>312</bold></highlight> and remote control directions indication, <highlight><bold>314</bold></highlight>. The hard/soft floor indication <highlight><bold>306</bold></highlight> can be used by cleaning unit control <highlight><bold>318</bold></highlight> to adjust the operation of sweep floor hard or soft floor. The cleaning unit control controls the operation of the sweeper and the vacuum. In one example, for a hard floor, the sweeper can be turned off or can be caused to revolve slower. The on and off indication <highlight><bold>308</bold></highlight> can be used to turn on or off the robot cleaner. Additionally, the on/off indication <highlight><bold>308</bold></highlight> can be used to pause the robot cleaner when the supplemental cleaning elements are used. The <highlight><bold>310</bold></highlight> is used to select between serpentine localized clean control <highlight><bold>320</bold></highlight> and the serpentine room clean control <highlight><bold>322</bold></highlight>. The clean time information <highlight><bold>310</bold></highlight> is used to select the clean time, such as to select between a 15 minute clean, 30 minute clean or max life clean. The remote control direction indications <highlight><bold>314</bold></highlight> are provided to the position control <highlight><bold>330</bold></highlight>. The position control <highlight><bold>330</bold></highlight> can be also controlled by the automatic control unit <highlight><bold>316</bold></highlight>. The position control can also interact with the position tracking unit <highlight><bold>332</bold></highlight> which can include mapping functions. Position tracking can track the current position of the robot cleaner. Alternately, in one embodiment, limited or no position tracking can be used for some or all of the cleaning functions. In one embodiment the information for the position tracking unit <highlight><bold>332</bold></highlight> can be provided through the automatic control <highlight><bold>316</bold></highlight>.
[0121] A number of sensors <highlight><bold>334</bold></highlight> can be used. These sensors can include the connection port detector <highlight><bold>316</bold></highlight> which can be used in one embodiment to detect whether the supplemental cleaning element is attached. In one embodiment, when the detector <highlight><bold>316</bold></highlight> detects that the supplemental cleaning element is attached, the sweeper can be automatically turned off. The bumper detector sensors <highlight><bold>338</bold></highlight>, stairway detector sensors <highlight><bold>340</bold></highlight> and object following sensor <highlight><bold>342</bold></highlight> can provide input into the object detection module <highlight><bold>324</bold></highlight>. The object detection module can provide information to the serpentine room clean module <highlight><bold>322</bold></highlight> and serpentine localized clean module <highlight><bold>320</bold></highlight>. The object following sensors <highlight><bold>342</bold></highlight> can also provide a signal to the object following mode control unit <highlight><bold>326</bold></highlight> for operating the robot cleaner in an object falling mode.
[0122] Wheel sensors <highlight><bold>344</bold></highlight> can also be used to provide information for the position tracking <highlight><bold>332</bold></highlight>. In one embodiment, this information is used for dead reckoning to add information for a room map or to provide information to find uncleaned regions of a room.
[0123] In one embodiment, the information from the wheel sensors can be obtained by a local position module in the position tracking unit <highlight><bold>332</bold></highlight>. The local modules can then be called to provide update information to a global position module. The global position module can provide information used for the mapping of the cleaned areas.
[0124] The modules of <cross-reference>FIG. 3</cross-reference> can be run on a processor or processors. In one embodiment, conventional operating systems are used due to the speed of a contemporary processors. An alternate embodiment, a real time operating system (RTOS) can be used. Real time operating system are operating systems that guarantees a certain capability within a specified time constraint. Real time operating systems are available from vendors such as Wind River Systems, Inc., of Alameda Calif.
[0125] One advantage of the serpentine pattern controlled by the modules <highlight><bold>320</bold></highlight> and <highlight><bold>322</bold></highlight> is that of ease of adaptation when obstacles are encountered. When obstacles, such as a descending stairway and objects such as furniture or wall is encountered, in any point of the pattern when the robot cleaner encounters the obstacle, the robot cleaner can back up and jump to the next direction of the pattern. When a robot cleaner get to an obstacle, the robot cleaner starts the next pass segment. This is shown in the examples of <cross-reference>FIG. 4</cross-reference> and <highlight><bold>5</bold></highlight>.
[0126] It is possible that obstacle can result in uncleaned regions of a room. In one embodiment, the room is mapped by the robot cleaner and the location of unclean regions of the room are identified. The robot cleaner can proceed to move to the unclean regions and clean in another serpentine pattern within the unexplored area as shown in <cross-reference>FIG. 5</cross-reference>. Alternately, the serpentine cleaning can be done with another orientation. For example, after a first serpentine clean with long north/south segments, a second serpentine clean with long left/right cleaning segments can be done. In this alternate embodiment, the robot cleaner does not need to keep track of the uncleaned regions of the room.
[0128] When the robot cleaner cleans regions of the room, indications of the cleaned regions can be stored. For example, the map is updated with indications that certain cells are cleaned. When the robot cleaner is in one the clean regions, the robot cleaner can be put into a reduced power mode to reduce battery power consumption. For example, the cleaning unit or portion of the cleaning unit can be turned off. In the example, <cross-reference>FIG. 3</cross-reference> the cleaning unit control <highlight><bold>318</bold></highlight> can have access to an internal map and position information to determine when to put the robot cleaner in a reduced power mode.
[0134] In one embodiment, the map can store an internal map of less than a full room. In one embodiment, a map of a relatively small area around the robot cleaner is done. The internal map can keep track of objects, such as walls, in the area of the robot cleaner. The position of the robot cleaner can be maintained in the map so that objects can be avoided. In one embodiment, a short time period of data is stored. Old data can be removed from the internal map. Storing the map data for a short period ensures that the data does not become too stale. In one embodiment, data for a period of less than five minutes is stored. In one embodiment, data is stored for about 90 seconds. Alternately, data can be mantained for a specific distance from the robot cleaner. Data for regions outside this distance can be removed. Both of these internal mapping techniques, reduce the memory and processing requirements of the internal mapping.
[0141] <cross-reference>FIGS. 11A-11D</cross-reference> illustrate the cleaning of a subgrid. A basic pattern is used to maneuver the robot cleaner within the subgrid. In one embodiment, the basic pattern is the serpentine pattern shown in <cross-reference>FIG. 11A</cross-reference>. As shown in <cross-reference>FIG. 11A</cross-reference>, in one example the serpentine pattern includes straight line path segments. The robot cleaner can rotate in place in between straight line path segments. The straight line path segments can include parallel path segments that result in cleaning overlap.
[0143] One advantage of the serpentine pattern is the ease of adaptation when obstacles are encountered. At any point in the pattern, when the robot cleaner encounters an obstacle, the robot cleaner can back up and jump to next direction in the pattern. When the robot cleaner gets to an obstacle, the robot cleaner starts the next path segment. This is shown in the example of <cross-reference>FIG. 11B</cross-reference>.
[0144] As shown in the example of <cross-reference>FIG. 11B</cross-reference>, obstacles can result in uncleaned regions of the subgrid. In one embodiment, the subgrid is mapped by the robot cleaner and the location of uncleaned regions in the subgrid is identified. The robot cleaner can proceed to move the uncleaned region and clean in another serpentine pattern within the unexplored area as shown in <cross-reference>FIG. 11C</cross-reference>.
[0145] Alternately, <cross-reference>FIG. 11D</cross-reference> illustrates a serpentine cleaning within the entire subgrid from another orientation. One advantage of the cleaning pattern of <cross-reference>FIG. 11D</cross-reference> is that the robot cleaner does not need to keep track of uncleaned regions in the subgrid. Serpentine patterns within the subgrid from additional orientations can also be done.
[0146] <cross-reference>FIGS. 12A and 12B</cross-reference> described below, describe a state machine for controlling the robot cleaner within a subgrid for one embodiment. In <cross-reference>FIG. 12A</cross-reference>, state <highlight><bold>1</bold></highlight> involves a cleaner motion up to the X_bound of the subgrid. State <highlight><bold>2</bold></highlight> involves a step motion at the top of the subgrid toward the Y_bound. State <highlight><bold>3</bold></highlight> involves a motion down to the X origin. State <highlight><bold>4</bold></highlight> involves a step motion at the bottom of the subgrid toward the Y_bound. State <highlight><bold>5</bold></highlight> involves a last pass that occurs when the Y_bound is reached. In <cross-reference>FIG. 4B</cross-reference>, state <highlight><bold>6</bold></highlight> is a backing up step that occurs when an obstacle is encountered. State <highlight><bold>6</bold></highlight> returns to the next state from the interrupted state. For example, if state <highlight><bold>4</bold></highlight> is interrupted, state <highlight><bold>6</bold></highlight> returns to state <highlight><bold>1</bold></highlight>.
[0147] <cross-reference>FIG. 13</cross-reference> illustrates the states of the state machine for a path through the subgrid. By changing the X_bound and Y_bound, the state machine of <cross-reference>FIGS. 13A and 13B</cross-reference> can clean a different sized region. For example, the uncleaned region of a subgrid can be cleaned as shown in <cross-reference>FIG. 11C</cross-reference> by moving to a start position and setting the X_bound and Y_bound to the size of the uncleaned region.
[0148] A back-up control module can used for backing-up the robot cleaner once an obstacle encountered. A Subgrid cleaning control module <highlight><bold>328</bold></highlight> can also produce a local map of the subgrid for use in the cleaning of the subgrid. The local map information can be transferred to the room mapping unit to produce a room map. The room map can be at a lower resolution than the subgrid map to save memory and processing power. For example, a cell size of four inches by four inches may be used for the subgrid map while the room map uses a cell size of a foot by a foot.
[0149] The selection of the next subgrid can be under the control of a next subgrid selection module. The subgrid selection module can use the room map provided by the subgrid mapping unit module to select the next subgrid. In one embodiment, the next subgrid is selected to “bunch” together the cleaned subgrids rather than having the subgrids form a straight line across a room. <cross-reference>FIG. 14</cross-reference> illustrates the selection of subgrids within a room. In this embodiment, the next subgrid selected is adjacent to a previous subgrid. In the example of <cross-reference>FIG. 14</cross-reference>, the subgrids are selected in a roughly spiral shape to bunch together the subgrids.
[0150] <cross-reference>FIG. 15</cross-reference> illustrates the use of overlap between subgrids. In the example of <cross-reference>FIG. 15</cross-reference>, subgrid B overlaps subgrid A. The use of overlap between subgrids prevents accumulated errors in the positioning system from causing the subgrids to be misaligned with uncleaned regions between subgrids.
[0152] In one embodiment, a region in a room is cleaned with a robot cleaner. The region is mapped in a first internal map. Information from the first internal map is used to produce a second internal map of lower resolution. The internal maps can be data structures used by the robot cleaner. In one example, the first internal map is sub a grid map and the second internal map is a room map. <cross-reference>FIG. 16A</cross-reference> shows an example of a sub grid map with the obstacle indicated with cells marked with “2”. <cross-reference>FIG. 16B</cross-reference> shows an example of a room map. The lower resolution for the room map conserves on memory and processing. The internal maps can be composed of cells. In one example, the cells are marked as obstacle, cleaned or uncleaned. A width of a cell of a subgrid map may correspond to portion of the effective cleaning unit width of the robot cleaner. In one embodiment, a cell of the subgrid map can be set cleaned with single straight line path segment of robot cleaner. Information of the first internal map, such as the subgrid map can be cleared after the region is cleaned. A new internal map can be prepared for the next region being cleaned.
[0157] In on embodiment, each cell holds three values: <highlight><smallcaps>X</smallcaps></highlight>_val, <highlight><smallcaps>Y</smallcaps></highlight>_val, and <highlight><smallcaps>STATUS. X</smallcaps></highlight>_val and <highlight><smallcaps>Y</smallcaps></highlight>_val denote values that are length units used outside of the mapping routines (such as feet or inches). <highlight><smallcaps>STATUS </smallcaps></highlight>holds the value denoting the status of the cell, whether the robot has been there (denoted by value of 1 in our case, or 2 for an obstruction). These values are arbitrarily but have been chosen in order to be useful later when algorithms are used to determine what parts of the map the robot should avoid, i.e., when an area has a high average value/density of high numbers (that denote obstacles), or when an area has a high average value/density of zeros (denoting that space should be explored).
Parker, Andrew J., Taylor, Charles E., Lau, Shek Fai, Ng, Eric, Heninger, Andrew, Blair, Eric C.