Title:
Coverage robot mobility
Document Type and Number:
United States Patent 7441298

Abstract:
An autonomous coverage robot includes a chassis, a drive system to maneuver the robot, an edge cleaning head carried, and a controller. The controller is configured to monitor motor current associated with the edge cleaning head and to reverse bias the edge cleaning head motor in response to an elevated motor current, while continuing to maneuver the robot across the floor. In another aspect, an autonomous coverage robot includes a drive system, a bump sensor, and a proximity sensor. The drive system is configured to reduce a speed setting in response to a signal from the proximity sensor indicating detection of a potential obstacle in a forward direction, while continuing to advance the robot according to a heading setting. Furthermore, the drive system is configured to alter the heading setting in response to a signal received from the bump sensor indicating contact with an obstacle.

Inventors:
Svendsen, Selma (Andover, MA, US)
Ozick, Daniel N. (Newton, MA, US)
Casey, Christopher M. (Lexington, MA, US)
Kapoor, Deepak Ramesh (Cranston, RI, US)
Campbell, Tony L. (Pepperell, MA, US)
Won, Chikyung (Tewksbury, MA, US)
Morse, Christopher John (Malden, MA, US)
Burnett, Scott Thomas (Windham, NH, US)
      Plaque It!

Application Number:
11/633885
Publication Date:
10/28/2008
Filing Date:
12/04/2006
View Patent Images:
Images are available in PDF form when logged in. To view PDFs, Login  or  Create Account (Free!)
Assignee:
iRobot Corporation (Bedford, MA, US)
Primary Class:
Other Classes:
15/319, 15/339, 15/49.1
International Classes:
A47L5/00; G06F19/00
Field of Search:
700/245, 701/41, 701/23, 15/319, 701/300, 342/385, 701/301, 342/417, 15/339, 15/49.1, 701/24
US Patent References:
3457575SWEEPER FOR CARPETED AND SMOOTH FLOORSJuly, 1969Bienek
3550714LAWN MOWERDecember, 1970Bellinger
3674316PARTICLE MONITORJuly, 1972De Brey
3756667SUSPENSION FOR TRACKED VEHICLESSeptember, 1973Bombardier
3809004ALL TERRAIN VEHICLEMay, 1974Leonheart
3937174Sweeper having at least one side brushFebruary, 1976Haaga
4099284Hand sweeper for carpetsJuly, 1978Shinozaki et al.
4119900Method and system for the automatic orientation and control of a robotOctober, 1978Kremnitz
D258901Wheeled figure toyApril, 1981Keyworth
4306329Self-propelled cleaning device with wireless remote-controlDecember, 1981Yokoi
4369543Remote-control radio vacuum cleanerJanuary, 1983Chen et al.
4492058Ultracompact miniature toy vehicle with four-wheel drive and unusual climbing capabilityJanuary, 1985Goldfarb
4513469Radio controlled vacuum cleanerApril, 1985Godfrey et al.
D278732Animal-like figure toyMay, 1985Ohkado
4556313Short range optical rangefinderDecember, 1985Miller, Jr. et al.
4618213Gelatinous elastomeric optical lens, light pipe, comprising a specific block copolymer and an oil plasticizerOctober, 1986Chen
4620285Sonar ranging/light detection system for use in a robotOctober, 1986Perdue
4626995Apparatus and method for optical guidance system for automatic guided vehicleDecember, 1986Lofgren et al.
4674048Multiple robot control system using grid coordinate system for tracking and completing travel over a mapped region containing obstructionsJune, 1987Okumura
4679152Navigation system and method for a mobile robotJuly, 1987Perdue
4696074Multi-purpose household appliance particularly for cleaning floors, carpets, laid carpetings, and the likeSeptember, 1987Cavalli et al.
D292223Toy robot or the likeOctober, 1987Trumbull
4700301Method of automatically steering agricultural type vehiclesOctober, 1987Dyke
4700427Method of automatically steering self-propelled floor-cleaning machines and floor-cleaning machine for practicing the methodOctober, 1987Knepper
4716621Floor and bounded surface sweeper machineJanuary, 1988Zoni
4733430Vacuum cleaner with operating condition indicator systemMarch, 1988Westergren
4733431Vacuum cleaner with performance monitoring systemMarch, 1988Martin
4756049Self-propelled cleaning truckJuly, 1988Uehara
4777416Recharge docking system for mobile robotOctober, 1988George, II et al.
D298766Toy robotNovember, 1988Tanno
4782550Automatic surface-treating apparatusNovember, 1988Jacobs
4813906Pivotable running toyMarch, 1989Matsuyama
4815157Floor cleanerMarch, 1989Tsuchiya
4829626Method for controlling a vacuum cleaner or a central vacuum cleanerMay, 1989Harkonen
4832098Non-pneumatic tire with supporting and cushioning membersMay, 1989Palinkas
4854000Cleaner of remote-control typeAugust, 1989Takimoto
4887415Automated lawn mower or floor polisherDecember, 1989Martin
4893025Distributed proximity sensor system having embedded light emitters and detectorsJanuary, 1990Lee
4901394Floor nozzle for electric cleanerFebruary, 1990Nakamura et al.
4912643Position sensing apparatusMarch, 1990Beirne
4918441Non-contact sensing unit for row crop harvester guidance systemApril, 1990Bohman
4919224Automatic working vehicular systemApril, 1990Shyu et al.
4919489Cog-augmented wheel for obstacle negotiationApril, 1990Kopsco
4933864Mobile robot navigation employing ceiling light fixturesJune, 1990Evans et al.
4956891Floor cleanerSeptember, 1990Wulff
4962453Autonomous vehicle for working on a surface and method of controlling sameOctober, 1990Pong et al.
4971591Vehicle with vacuum tractionNovember, 1990Raviv
4974283Hand-guided sweeping machineDecember, 1990Holsten et al.
4977639Floor detector for vacuum cleanersDecember, 1990Takahashi et al.
5001635VehicleMarch, 1991Yasutomi et al.
5002145Method and apparatus for controlling automated guided vehicleMarch, 1991Waqkaumi et al.
5022812Small all terrain mobile robotJune, 1991Coughlan et al.
D318500Monster toy robotJuly, 1991Malewicki
5033291Flexible tactile sensor for measuring foot pressure distributions and for gasketsJuly, 1991Podoloff et al.
5062819Toy vehicle apparatusNovember, 1991Mallory
5086535Machine and method using graphic data for treating a surfaceFebruary, 1992Grossmeyer et al.
5093955Combined sweeper and scrubberMarch, 1992Blehert et al.
5094311Limited mobility transporterMarch, 1992Akeel
5105502Vacuum cleaner with function to adjust sensitivity of dust sensorApril, 1992Takashima
5109566Self-running cleaning apparatusMay, 1992Kobayashi et al.
5115538Vacuum cleanersMay, 1992Cochran et al.
5136750Vacuum cleaner with device for adjusting sensitivity of dust sensorAugust, 1992Takashima et al.
5142985Optical detection deviceSeptember, 1992Stearns
5163202Dust detector for vacuum cleanerNovember, 1992Kawakami et al.
5165064Mobile robot guidance and navigation systemNovember, 1992Mattaboni
5173881Vehicular proximity sensing systemDecember, 1992Sindle
5204814Autonomous lawn mowerApril, 1993Noonan et al.
5239720Mobile surface cleaning machineAugust, 1993Wood et al.
5261139Raised baseboard brush for powered floor sweeperNovember, 1993Lewis
5277064Thick film accelerometerJanuary, 1994Knigga et al.
5279672Automatic controlled cleaning machineJanuary, 1994Belker, Jr. et al.
5284522Self-running cleaning control methodFebruary, 1994Kobayashi et al.
5293955Obstacle sensing apparatus for a self-propelled cleaning robotMarch, 1994Lee
5303448Hopper and filter chamber for direct forward throw sweeperApril, 1994Hennessey et al.
5310379Multiple configuration toy vehicleMay, 1994Hippely
5319828Low profile scrubberJune, 1994Waldhauser et al.
5321614Navigational control apparatus and method for autonomus vehiclesJune, 1994Ashworth
5324948Autonomous mobile robot for radiologic surveysJune, 1994Dudar et al.
5341540Process and autonomous apparatus for the automatic cleaning of ground areas through the performance of programmed tasksAugust, 1994Soupert et al.
5353224Method for automatically controlling a travelling and cleaning operation of vacuum cleanersOctober, 1994Lee et al.
5363935Reconfigurable mobile vehicle with magnetic tracksNovember, 1994Schempf
5369347Self-driven robotic cleaning apparatus and driving method thereofNovember, 1994Yoo
5369838Automatic floor scrubberDecember, 1994Wood et al.
5410479Ultrasonic furrow or crop row following sensorApril, 1995Coker
5435405Reconfigurable mobile vehicle with magnetic tracksJuly, 1995Schempf
5440216Robot cleanerAugust, 1995Kim
5444965Continuous and autonomous mowing systemAugust, 1995Colens
5446356Mobile robotAugust, 1995Kim
5451135Collapsible mobile vehicleSeptember, 1995Schempf
5454129Self-powered pool vacuum with remote controlled capabilitiesOctober, 1995Kell
5455982Hard and soft floor surface cleaning apparatusOctober, 1995Armstrong et al.
5465525Intellectual working robot of self controlling and runningNovember, 1995Mifune et al.
5467273Large area movement robotNovember, 1995Faibish et al.
5497529Electrical apparatus for cleaning surfaces by suction in dwelling premisesMarch, 1996Boesi
5505072Scanning circuit for pressure responsive arrayApril, 1996Oreper
5507067Electronic vacuum cleaner control systemApril, 1996Hoekstra et al.
5515572Electronic vacuum cleaner control systemMay, 1996Hoekstra et al.
5534762Self-propelled cleaning robot operable in a cordless mode and a cord modeJuly, 1996Kim
5537017Self-propelled device and process for exploring an area with the deviceJuly, 1996Feiten et al.
5539953Floor nozzle for vacuum cleanersJuly, 1996Kurz
5542146Electronic vacuum cleaner control systemAugust, 1996Hoekstra et al.
5548511Method for controlling self-running cleaning apparatusAugust, 1996Bancroft
5551525Climber robotSeptember, 1996Pack et al.
5553349Vacuum cleaner nozzleSeptember, 1996Kilstrom et al.
5555587Floor mopping machineSeptember, 1996Guha
5560077Vacuum dustpan apparatusOctober, 1996Crotchett
5568589Self-propelled cleaning machine with fuzzy logic controlOctober, 1996Hwang
D375592Vacuum cleanerNovember, 1996Ljunggren
5611106Carpet maintainerMarch, 1997Wulff
5611108Floor cleaning apparatus with slidable flapMarch, 1997Knowlton et al.
5613261CleanerMarch, 1997Kawakami et al.
5621291Drive control method of robotic vacuum cleanerApril, 1997Lee
5622236Guidance system for self-advancing vehicleApril, 1997Azumi et al.
5634237Self-guided, self-propelled, convertible cleaning apparatusJune, 1997Paranjpe
5634239Vacuum cleaner nozzleJune, 1997Tuvin et al.
5650702Controlling system for self-propelled floor cleaning vehiclesJuly, 1997Azumi
5652489Mobile robot control systemJuly, 1997Kawakami
5682313Method for localization of beacons for an autonomous deviceOctober, 1997Edlund et al.
5709007Remote control vacuum cleanerJanuary, 1998Chiang
5717169Method and apparatus for inspecting well bore casingFebruary, 1998Liang et al.
5735959Apparatus spreading fluid on floor while movingApril, 1998Kubo et al.
5756904Pressure responsive sensor having controlled scanning speedMay, 1998Oreper
5761762Cleaner and bowling maintenance machine using the sameJune, 1998Kubo et al.
5777596Touch sensitive flat panel displayJuly, 1998Herbert
5781960Nozzle arrangement for a self-guiding vacuum cleanerJuly, 1998Kilstrom et al.
5787545Automatic machine and device for floor dustingAugust, 1998Colens
5794297Cleaning members for cleaning areas near walls used in floor cleanerAugust, 1998Muta
5812267Optically based position location system for an autonomous guided vehicleSeptember, 1998Everett, Jr. et al.
5819008Mobile robot sensor systemOctober, 1998Asama et al.
5831597Computer input device for use in conjunction with a mouse input deviceNovember, 1998West et al.
5839156Remote controllable automatic moving vacuum cleanerNovember, 1998Park et al.
5839532Vacuum wall walking apparatusNovember, 1998Yoshiji
5841259Vacuum cleaner and control method thereofNovember, 1998Kim et al.
5867800Method and device for sensing of obstacles for an autonomous deviceFebruary, 1999Leif
5905209Output circuit for pressure sensorMay, 1999Oreper
5916008Wall descending toy with retractable wheel and coverJune, 1999Wong
5926909Remote control vacuum cleaner and charging systemJuly, 1999McGee
5933102Capacitive sensitive switch method and systemAugust, 1999Miller
5933913Cordless wet mop and vacuum assemblyAugust, 1999Wright et al.
5935179System and device for a self orienting deviceAugust, 1999Kleiner et al.701/23
5940927Autonomous surface cleaning apparatusAugust, 1999Haegermarck et al.
5940930Remote controlled vacuum cleanerAugust, 1999Oh et al.
5942869Mobile robot control deviceAugust, 1999Katou
5943730Scrubber vac-fan sealAugust, 1999Boomgaarden
5943733Sucking and filtering vehicle for dust and trash collectingAugust, 1999Tagliaferri
5959423Mobile work robot systemSeptember, 1999Nakanishi et al.
5968281Method for mopping and drying a floorOctober, 1999Wright et al.
5983448Cordless wet mop and vacuum assemblyNovember, 1999Wright et al.
5984880Tactile feedback controlled by various mediumNovember, 1999Lander
5989700Pressure sensitive ink means, and methods of useNovember, 1999Krivopal
5991951Running and working robot not susceptible to damage at a coupling unit between running unit and working unitNovember, 1999Kubo
6000088Cordless wet mop and vacuum assemblyDecember, 1999Wright et al.
6032542Prepressured force/pressure sensor and method for the fabrication thereofMarch, 2000Warnick
6041471Mobile walk-behind sweeperMarch, 2000Charky et al.
6049620Capacitive fingerprint sensor with adjustable gainApril, 2000Dickinson et al.
6055702Vacuum cleanerMay, 2000Imamura
6065182Cordless wet mop and vacuum assemblyMay, 2000Wright et al.
6076025Mobile robot steering method and control deviceJune, 2000Ueno
6076226Controlled self operated vacuum cleaning systemJune, 2000Reed
6088020Haptic deviceJuly, 2000Mor
6099091Traction enhanced wheel apparatusAugust, 2000Campbell
6101671Wet mop and vacuum assemblyAugust, 2000Wright et al.
6108269Method for elimination of passive noise interference in sonarAugust, 2000Kabel
6125498Handheld extraction cleanerOctober, 2000Roberts et al.
6142252Autonomous vehicle that runs while recognizing work area configuration, and method of selecting routeNovember, 2000Kinto et al.
6167587Upright extraction cleaning machineJanuary, 2001Kasper et al.
6192548Upright extraction cleaning machine with flow rate indicatorFebruary, 2001Huffman
6226830Vacuum cleaner with obstacle avoidanceMay, 2001Hendriks et al.
6230362Upright extraction cleaning machineMay, 2001Kasper et al.
6243913Cleaning deviceJune, 2001Frank et al.
6259979Method and device for association of anonymous reflectors to detected angle positionsJuly, 2001Holmquist
6263539Carpet/floor cleaning wand and machineJuly, 2001Baig
6272936Pressure sensorAugust, 2001Oreper
6327741Controlled self operated vacuum cleaning systemDecember, 2001Reed
6370453Service robot for the automatic suction of dust from floor surfacesApril, 2002Sommer
6400048Rotary brush device and vacuum cleaner using the sameJune, 2002Nishimura
6401294Upright extracton cleaning machine with handle mountingJune, 2002Kasper
6412141Upright extraction cleaning machineJuly, 2002Kasper et al.
6437227Method for recognizing and selecting a tone sequence, particularly a piece of musicAugust, 2002Theimer
6442476Method of tracking and sensing position of objectsAugust, 2002Poropat
6444003Filter apparatus for sweeper truck hopperSeptember, 2002Sutcliffe
6481515Autonomous mobile surface treating apparatusNovember, 2002Kirkpatrick et al.
6493612Sensors arrangementDecember, 2002Bisset
6493613Method for operating a robotDecember, 2002Peless et al.
6496754Mobile robot and course adjusting method thereofDecember, 2002Song et al.
6496755Autonomous multi-platform robot systemDecember, 2002Wallach et al.
6504610Method and system for positioning an autonomous mobile unit for dockingJanuary, 2003Bauer
6525509Docking system for a self-propelled working toolFebruary, 2003Petersson et al.
6532404Mobile robots and their control systemMarch, 2003Colens
D474312Robotic vacuum cleanerMay, 2003Stephens
6571415Random motion cleanerJune, 2003Gerber et al.
6571422Vacuum cleaner with a microprocessor-based dirt detection circuitJune, 2003Gordon
6574536Moving apparatus for efficiently moving on floor with obstacleJune, 2003Kawagoe et al.
6580246Robot touch shieldJune, 2003Jacobs
6601265Vacuum cleanerAugust, 2003Burlington
6605156Robotic floor cleaning deviceAugust, 2003Clark et al.
6611120Robot cleaning system using mobile communication networkAugust, 2003Song et al.
6611738Multifunctional mobile applianceAugust, 2003Ruffner
6658693Hand-held extraction cleaner with turbine-driven brushDecember, 2003Reed, Jr.
6671592Autonomous vehicular appliance, especially vacuum cleanerDecember, 2003Bisset et al.
6690134Method and system for robot localization and confinementFebruary, 2004Jones et al.
6741054Autonomous floor mopping apparatusMay, 2004Koselka et al.
6748297Robot cleaner system having external charging apparatus and method for docking with the charging apparatusJune, 2004Song et al.
6756703Trigger switch moduleJune, 2004Chang
6781338Method and system for robot localization and confinementAugust, 2004Jones et al.
6809490Method and system for multi-mode coverage for an autonomous robotOctober, 2004Jones et al.
6830120Floor working machine with a working implement mounted on a self-propelled vehicle for acting on floorDecember, 2004Yashima et al.
6841963Robot cleaner, system thereof and method for controlling sameJanuary, 2005Song et al.
6883201Autonomous floor-cleaning robotApril, 2005Jones et al.15/319
6901624Self-moving cleanerJune, 2005Mori et al.
D510066Base station for robotSeptember, 2005Hickey et al.
6938298Mobile cleaning robot for floorsSeptember, 2005Aasen
6956348Debris sensor for cleaning apparatusOctober, 2005Landry et al.
6965209Method and system for robot localization and confinementNovember, 2005Jones et al.
6971140Brush assembly of cleanerDecember, 2005Kim
6985556Proximity detector and radiography systemJanuary, 2006Shanmugavel
6993954Sensor equilibration and calibration system and methodFebruary, 2006George
6999850Sensors for robotic devicesFebruary, 2006McDonald
7024278Navigational control system for a robotic deviceApril, 2006Chiapetta et al.
7030768Water softener monitoring deviceApril, 2006Wanie
7057120Shock absorbent roller thumb wheelJune, 2006Ma et al.
7085624Autonomous machineAugust, 2006Aldred et al.
7206677Efficient navigation of autonomous carriersApril, 2007Hulden
20010020200Tool actuation and force feedback on robot-assisted microsurgery systemSeptember, 2001Das et al.
20010025183Methods and apparatuses for maintaining a trajectory in sterotaxi for tracking a target inside a bodySeptember, 2001Shahidi
20010047231Method for operating a robotNovember, 2001Peless et al.
20020011813Autonomous floor mopping apparatusJanuary, 2002Koselka et al.
20020016649Robot obstacle detection systemFebruary, 2002Jones
20020120364Mobile robots and their control systemAugust, 2002Colens
20020156556Multifunctional mobile applianceOctober, 2002Ruffner
20020173877Mobile robotic with web server and digital radio linksNovember, 2002Zweig
20030019071Cleaner cartridgeJanuary, 2003Field et al.
20030025472Method and system for multi-mode coverage for an autonomous robotFebruary, 2003Jones et al.
20030060928ROBOTIC VACUUM CLEANERMarch, 2003Abramson et al.
20030067451CAPACITIVE TOUCH DETECTORSApril, 2003Tagg
20030120389Robotic vacuum cleanerJune, 2003Abramson et al.
20030137268Miniature robotic vehicles and methods of controlling sameJuly, 2003Papanikolopoulos et al.
20030192144Robot vacuum cleaner with air agitationOctober, 2003Song et al.
20030216834Method and system for remote control of mobile robotNovember, 2003Allard
20030233177Graphical system configuration program for material handlingDecember, 2003Johnson et al.
20040020000Robot obstacle detection systemFebruary, 2004Jones
20040030448System, methods and apparatus for managing external computation and sensor resources applied to mobile robotic networkFebruary, 2004Solomon
20040030449Methods and apparatus for multi robotic system involving coordination of weaponized unmanned underwater vehiclesFebruary, 2004Solomon
20040030450System, methods and apparatus for implementing mobile robotic communication interfaceFebruary, 2004Solomon
20040030571System, method and apparatus for automated collective mobile robotic vehicles used in remote sensing surveillanceFebruary, 2004Solomon
20040031113Robotic surface treating device with non-circular housingFebruary, 2004Wosewick et al.
20040049877Autonomous floor-cleaning robotMarch, 2004Jones et al.
20040068351System, methods and apparatus for integrating behavior-based approach into hybrid control model for use with mobile robotic vehiclesApril, 2004Solomon
20040068415System, methods and apparatus for coordination of and targeting for mobile robotic vehiclesApril, 2004Solomon
20040068416System, method and apparatus for implementing a mobile sensor networkApril, 2004Solomon
20040076324Systems and methods for the automated sensing of motion in a mobile robot using visual dataApril, 2004Burl et al.
20040088079Method and device for obstacle detection and distance measurement by infrared radiationMay, 2004Lavarec et al.
20040111184Navigational control system for a robotic deviceJune, 2004Chiappetta et al.
20040117064Sensors for robotic devicesJune, 2004McDonald700/245
20040134336System, methods and apparatus for aggregating groups of mobile robotic vehiclesJuly, 2004Solomon
20040134337System, methods and apparatus for mobile software agents applied to mobile robotic vehiclesJuly, 2004Solomon
20040148731Powered edge cleanerAugust, 2004Damman et al.
20040156541Location mark detecting method for robot cleaner and robot cleaner using the methodAugust, 2004Jeon et al.
20040158357Robot cleaner system having external recharging apparatus and method for docking robot cleaner with external recharging apparatusAugust, 2004Lee et al.
20040200505Robot vac with retractable power cordOctober, 2004Taylor et al.
20040204792Robotic vacuum with localized cleaning algorithmOctober, 2004Taylor et al.
20040211444Robot vacuum with particulate detectorOctober, 2004Taylor et al.
20040236468Robot vacuum with remote control modeNovember, 2004Taylor et al.
20040244138Robot vacuumDecember, 2004Taylor et al.
20050000543Robot vacuum with internal mapping systemJanuary, 2005Taylor et al.
20050010331Robot vacuum with floor type modesJanuary, 2005Taylor et al.
20050021181Robot cleanerJanuary, 2005Kim et al.700/245
20050067994Method and system for robot localization and confinementMarch, 2005Jones
20050156562Autonomous robot auto-docking and energy management systems and methodsJuly, 2005Cohen et al.
20050166354Autonomous vacuum cleanerAugust, 2005Uehigashi
20050204717Device for automatically picking up objectsSeptember, 2005Colens
20050251292Obstacle following sensor scheme for a mobile robotNovember, 2005Casey et al.
20060010638CleanerJanuary, 2006Shimizu
20060060216System for automatically exchanging cleaning tools of robot cleaner, and method thereforMarch, 2006Woo
20060089765System and method for behavior based control of an autonomous vehicleApril, 2006Pack et al.
20060190133Autonomous surface cleaning robot for wet cleaningAugust, 2006Konandreas et al.700/245
20070244610Autonomous coverage robot navigation systemOctober, 2007Ozick et al.701/23
Foreign References:
EP0437024July, 1991Appliance housings.
EP0861629September, 1998Vacuum cleaner
EP0930040July, 1999Low noise fan
EP1331537July, 2003Method and system for robot localization and confinement of workspace
FR2828589August, 2001
GB2283838May, 1995
GB2404330February, 2005
JP62120510June, 1987
JP62154008July, 1987
JP63183032July, 1988
JP63241610October, 1988
JP0026312January, 1990
JP2026312January, 1990
JP03051023March, 1991SELF-PROPELLED CLEANER
JP06327598November, 1994INTAKE PORT BODY FOR VACUUM CLEANER
JP7295636November, 1995
JP08089451April, 1996SELF-MOBILE CLEANER
JP08152916June, 1996MOBILE WORKING ROBOT
JP9179625July, 1997
JP9185410July, 1997
JP9206258August, 1997
JP11508810August, 1999
JP11510935September, 1999
JP2001258807September, 2001SELF-TRAVELING VACUUM CLEANER
JP2001275908October, 2001CLEANING DEVICE
JP2001525567December, 2001
JP200278650March, 2002
JP2002204768July, 2002SELF-PROPELLED CLEANER
JP22204768July, 2002
JP2002532178October, 2002
JP3356170October, 2002
JP2002323925November, 2002MOVING WORKING ROBOT
JP22323925November, 2002
JP2002355206December, 2002TRAVELING VACUUM CLEANER
JP2002360471December, 2002SELF-TRAVELLING VACUUM CLEANER
JP2002360482December, 2002SELF-PROPELLED CLEANER
JP22360479December, 2002
JP200310076January, 2003
JP20035296February, 2003
JP2003036116February, 2003AUTONOMOUS TRAVEL ROBOT
JP200338401February, 2003
JP200338402February, 2003
JP2003505127February, 2003
JP23052596February, 2003
JP2003061882March, 2003SELF-PROPELLED VACUUM CLEANER
JP2003310489November, 2003ROBOT CLEANER
WO/1995/026512October, 1995METHOD AND DEVICE FOR SENSING OF OBSTACLES FOR AN AUTONOMOUS DEVICE
WO/1997/015224May, 1997VACUUM CLEANER NOZZLE
WO/1997/040734November, 1997AUTONOMOUS DEVICE
WO/1997/041451November, 1997SYSTEM AND DEVICE FOR A SELF ORIENTING DEVICE
WO/1999/028800June, 1999IMPROVEMENTS TO MOBILE ROBOTS AND THEIR CONTROL SYSTEM
WO/1999/038056July, 1999ELECTRONIC SEARCH SYSTEM
WO/1999/038237July, 1999DOCKING SYSTEM FOR A SELF-PROPELLED WORKING TOOL
WO/1999/043250September, 1999VACUUM CLEANER NOZZLE
WO/2000/004430January, 2000ROBOTIC SYSTEM
WO/2000/036962June, 2000VACUUM CLEANER
WO/2000/038026June, 2000SENSORS ARRANGEMENT
WO/2000/038029June, 2000AUTONOMOUS VEHICULAR APPLIANCE, ESPECIALLY VACUUM CLEANER
WO/2000/078410December, 2000DEVICE FOR AUTOMATICALLY PICKING UP OBJECTS
WO/2001/006904February, 2001ROBOTIC FLOOR CLEANING DEVICE
WO/2001/006905February, 2001ROBOTIC SYSTEM
WO/2002/039864May, 2002MOBILE ROBOT
WO/2002/039868May, 2002SENSORS FOR ROBOTIC DEVICES
WO/2002/058527August, 2002ROBOT FOR VACUUM CLEANING SURFACES VIA A CYCLOID MOVEMENT
WO/2002/062194August, 2002AUTOMATIC FLOOR CLEANING DEVICE
WO/2002/067744September, 2002WHEEL SUPPORT ARRANGEMENT FOR AN AUTONOMOUS CLEANING APPARATUS
WO/2002/067745September, 2002OBSTACLE SENSING SYSTEM FOR AN AUTONOMOUS CLEANING APPARATUS
WO/2002/074150September, 2002AUTONOMOUS MOBILE CANISTER VACUUM CLEANER
WO/2002/075356September, 2002SONAR TRANSDUCER
WO/2002/075469September, 2002METHOD AND DEVICE FOR DETERMINING POSITION OF AN AUTONOMOUS APPARATUS
WO/2002/075470September, 2002ENERGY-EFFICIENT NAVIGATION OF AN AUTONOMOUS SURFACE TREATMENT APPARATUS
WO/2002/101477December, 2002METHOD AND SYSTEM FOR MULTI-MODE COVERAGE FOR AN AUTONOMOUS ROBOT
WO/2003/026474April, 2003ROBOTIC VACUUM CLEANER
WO/2003/040845May, 2003AN AUTONOMOUS MACHINE
WO/2003/040846May, 2003AN AUTONOMOUS MACHINE
WO/2003/040546May, 2003COMMON-RAMP-INJECTOR
WO/2004/006034January, 2004FLOOR TREATMENT SYSTEM
WO/2004/004533January, 2004METHOD FOR OPERATING A FLOOR CLEANING SYSTEM, AND FLOOR CLEANING SYSTEM ASSOCIATED WITH SAID METHOD
WO/2004/005956January, 2004SENSOR DEVICE, IN ADDITION TO SELF-PROPELLED FLOOR CLEANING EQUIPMENT COMPRISING A SENSOR DEVICE
WO/2004/058028January, 2004MOBILE SOIL CULTIVATION APPLIANCE
WO/2005/077244January, 2004SURFACE TREATING DEVICE WITH CARTRIDGE-BASED CLEANING SYSTEM
WO/2006/068403January, 2004CLEANING ROBOT HAVING DOUBLE SUCTION DEVICE
WO/2004/025947March, 2004A NAVIGATIONAL CONTROL SYSTEM FOR A ROBOTIC DEVICE
WO/2005/055795June, 2005AUTOMOTIVE OR DRIVABLE SWEEPING DEVICE AND COMBINED SWEEPING DEVICE/ BASE STATION DEVICE
WO/2005/083541September, 2005DEBRIS SENSOR FOR CLEANING APPARATUS
WO/2006/046400May, 2007FUEL CELL SYSTEM AND METHOD
Other References:
Cameron Morland, Autonomous Lawn Mower Control, Jul. 24, 2002.
Doty, Keith L et al, “Sweep Strategies for a Sensory-Driven, Behavior-Based Vacuum Cleaning Agent” AAAI 1993 Fall Symposium Series Instantiating Real-World Agents Research Triangle Park, Raleigh, NC, Oct. 22-24, 1993, pp. 1-6.
Electrolux designed for the well-lived home, website: http://www.electroluxusa.com/node57.as[?currentURL=node142.asp%3F, acessed Mar. 18, 2005.
eVac Robotic Vacuum S1727 Instruction Manual, Sharper Image Corp, Copyright 2004.
Everyday Robots, website: http://www.everydayrobots.com/index.php?option=content&task=view&id=9, accessed Apr. 20, 2005.
Facts on the Trilobite webpage: “http://trilobiteelectroluxse/presskit—en/node11335asp?print=yes&pressID=” accessed Dec. 12, 2003.
Friendly Robotics Robotic Vacuum RV400-The Robot Store website: http://www.therobotstore.com/s.nl/sc.9/category,-109/it.A/id.43/.f, accessed Apr. 20, 2005.
Gat, Erann, Robust Low-computation Sensor-driven Control for Task-Directed Navigation, Proceedings of the 1991 IEEE, International Conference on Robotics and Automation, Sacramento, California, Apr. 1991, pp. 2484-2489.
Hitachi: News release: The home cleaning robot of the autonomous movement type (experimental machine) is developed, website: http://www.i4u.com/japanreleases/hitachirobot.htm., accessed Mar. 18, 2005.
Kärcher Product Manual Download webpage: “http://wwwkarchercom/bta/downloadenshtml?ACTION=SELECTTEILENR&ID=rc3000&submitButtonName=Select+Product+Manual” and associated pdf file “5959-915enpdf (47 MB) English/English” accessed Jan. 21, 2004.
Karcher RC 3000 Cleaning Robot—user manual Manufacturer: Alfred-Karcher GmbH & Co, Cleaning Systems, Alfred Karcher-Str 28-40, PO Box 160, D-71349 Winnenden, Germany, Dec. 2002.
Kärcher RoboCleaner RC 3000 Product Details webpages: “http://wwwrobocleanerde/english/screen3html” through “. . . screen6html” accessed Dec. 12, 2003.
Karcher USA, RC3000 Robotic Cleaner, website: http://www.karcher-usa.com/showproducts.php?op=view—prod¶m1=143¶m2=¶m3=, accessed Mar. 18, 2005.
Koolvac Robotic Vacuum Cleaner Owner's Manual, Koolatron, Undated.
NorthStar Low-Cost, Indoor Localization, Evolution robotics, Powering Intelligent Products.
Put Your Roomba . . . On “Automatic” Roomba Timer> Timed Cleaning-Floorvac Robotic Vacuum webpages: http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&category=43575198387&rd=1, accessed Apr. 20, 2005.
Put Your Roomba . . . On “Automatic” webpages: “http://www.acomputeredge.com/roomba,” accessed Apr. 20, 2005, 5 pgs.
RoboMaid Sweeps Your Floors So You Won't Have To, the Official Site, website: http//www.thereobomaid.com/, acessed Mar. 18, 2005.
Robot Review Samsung Robot Vacuum (VC-RP30W), website: http://www.onrobo.com/reviews/At—Home/Vacuun—Cleaners/on00vcrp30rosam/index.htm, accessed Mar. 18, 2005.
Robotic Vaccum Cleaner-Blue, website: http://www.sharperimage.com/us/en/catalog/productview.jhtml?sku=S1727BLU, accessed Mar. 18, 2005.
Schofield, Monica, “Neither Master nor Slave” A Pratical Study in the Development and Employment of Cleaning Robots, Emerging Technologies and Factory Automation, 1999 Proceedings EFA'99 1999 7th IEEE International Conference on Barcelona, Spain Oct. 18-21, 1999, pp. 1427-1434.
Wired News: Robot Vacs in the House, website: http://www.wired.com/news/print/0,1294,59237,00.html, accessed Mar. 18, 2005.
Zoombot Remote Controlled Vaccum-RV-500 New Roomba 2, website: http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&category=43526&item=4373497618&rd=1, accessed Apr. 20, 2005.
Shimoga et al., Touch and force reflection for telepresence surgery, 1994, IEEE, pp. 1049-1050.*.
Autonomous Lawn Care Applications, Conference on Robotics, Authors: Micheal Gregg, Dr. Eric M. Schwartz, Dr. Antonio A. Arroyo—future work includes a mechanism for adjusting cutter height, additional motor and blade for edge cutting.
Sweep Strategies for a Sensory Driven Behavior Based Vacuum Cleaning Agent, Keith L. Doty and Reid R. Harrison.
Primary Examiner:
Hail III, Joseph J.
Assistant Examiner:
Ojini, Anthony
Attorney, Agent or Firm:
Fish & Richardson P.C.
Parent Case Data:
This U.S. patent application claims priority under 35 U.S.C. 119(e) to a U.S. provisional patent application filed on Dec. 2, 2005, entitled “ROBOT NETWORKING, THEMING AND COMMUNICATION SYSTEM” and having assigned Ser. No. 60/741,442, the entire contents of which are hereby incorporated by reference.
Claims:
What is claimed is:

1. An autonomous coverage robot comprising: a chassis; a drive system mounted on the chassis and configured to maneuver the robot; an edge cleaning head carried by the chassis and driven by an edge cleaning head motor to rotate about a non-horizontal axis, the edge cleaning head extending beyond a lateral extent of the chassis to engage a floor surface while the robot is maneuvered across the floor; a controller carried by the chassis; a motor current sensor in communication with the controller and configured to monitor motor current associated with the edge cleaning head; wherein the controller is configured to reverse bias the motor current to the edge cleaning head motor, in response to an elevated motor current, sufficient to provide substantially free reverse rotation of the edge cleaning head motor, while continuing to maneuver the robot across the floor.

2. The robot of claim 1 wherein the controller, in response to an elevated edge cleaning head motor current, moves the robot backwards, alters a drive direction, and then moves the robot forward.

3. The robot of claim 1 wherein the edge cleaning head comprises a brush with bristles.

4. The robot of claim 1 wherein the edge cleaning head rotates about a substantially vertical axis.

5. The robot of claim 1 wherein the edge cleaning head comprises at least one brush element having first and second ends and defining an axis of rotation about the first end normal to the work surface.

6. The robot of claim 5 wherein the edge cleaning head comprises three brush elements, each brush element forming an angle with an adjacent brush element of about 120 degrees.

7. The robot of claim 5 wherein the edge cleaning head comprises six brush elements, each brush element forming an angle with an adjacent brush element of about 60 degrees.

8. The robot of claim 1 wherein the edge cleaning head is disposed on a peripheral edge of the robot.

9. The robot of claim 1 wherein the edge cleaning head comprises a rotatable squeegee that extends beyond a peripheral edge of the chassis.

10. The robot of claim 1 wherein the edge cleaning head comprises a plurality of absorbent fibers that extend beyond a peripheral edge of the chassis upon rotation of the cleaning head.

11. The robot of claim 1 further comprising a main cleaning head carried by the chassis and driven to rotate about a horizontal axis to engage a floor surface while the robot is maneuvered across the floor, wherein the controller is configured to reverse bias the motor current to the main cleaning head in response to an elevated main cleaning head motor current, while continuing to maneuver the robot across the floor.

12. The robot of claim 11 wherein the controller, in response to an elevated main cleaning head motor current, moves the robot backwards, alters a drive direction, and then moves the robot forward.

13. A method of disentangling an autonomous coverage robotic, the method comprising: running the robot to autonomously traverse across a floor surface in a forward direction of the robot while rotating about a non-horizontal axis an edge cleaning head carried by the chassis and driven by an edge cleaning head motor, the edge cleaning head extending beyond a lateral extent of the chassis while engaging the floor surface; monitoring motor current associated with the edge cleaning head; reverse biasing the motor current to the edge cleaning head motor, in response to detecting an elevated edge cleaning head motor current, sufficient to provide substantially free reverse rotation of the edge cleaning head motor, while continuing to maneuver across the floor surface.

14. The method of claim 13 wherein the robot determines movement of the robot in the forward direction before reverse biasing the motor current to the edge cleaning head in response to an elevated cleaning head motor current.

15. The method of claim 13 wherein the robot reverse biases the motor current to the edge cleaning head in response to an elevated edge cleaning head motor current for a period of time.

16. The method of claim 15 wherein the period of time is about 2 seconds.

17. The method of claim 13 wherein the robot, after reverse biasing the motor current to the edge cleaning head, moves in a reverse direction, alters a drive direction, and then moves in the drive direction.

18. The method of claim 13 wherein the edge cleaning head comprises a brush with bristles.

19. The method of claim 13 wherein the robot further comprises a main cleaning head carried by the chassis and driven to rotate about a horizontal axis to engage the floor surface while the robot is maneuvered across the floor, wherein the robot reverse biases the motor current to the main cleaning head in response to an elevated main cleaning head motor current while continuing to maneuver across the floor surface.

20. The method of claim 19 wherein the robot determines movement of the robot in the forward direction before reverse biasing the motor current to the main cleaning head in response to an elevated main cleaning head motor current.

21. The method of claim 19 wherein the robot reverse biases the motor current to the main cleaning head in response to an elevated cleaning head motor current for a period of time.

22. The method of claim 19 wherein the robot, after reverse biasing the motor current to the main cleaning head, moves in a reverse direction, alters a drive direction, and then moves in the drive direction.

23. An autonomous robot comprising: a chassis; a drive system mounted on the chassis and configured to maneuver the robot; a floor proximity sensor carried by the chassis and configured to detect an adjacent floor surface, the sensor comprising: a beam emitter configured to direct a beam toward the floor surface; and a beam receiver responsive to a reflection of the directed beam from the floor surface and mounted in a downwardly-directed receptacle of the chassis; and a beam-transparent cover having a forward and rearward edge disposed across a lower end of the receptacle to prohibit accumulation of sediment in the receptacle, the forward edge elevated above the rearward edge; wherein the cover comprises an anti-static material.

24. The robot of claim 23 wherein the floor proximity sensor comprises at least one infrared emitter and receiver pair.

25. The robot of claim 23 wherein the drive system comprises: at least one driven wheel suspended from the chassis; and at least one wheel-floor proximity sensor carried by the chassis and housed adjacent one of the wheels, the wheel-floor proximity sensor configured to detect the floor surface adjacent said one of the wheels.

26. The robot of claim 25 wherein the wheel-floor proximity sensor comprises at least one infrared emitter and receiver pair.

27. The robot of claim 23 wherein the drive system further comprises a controller configured to maneuver the robot away from a perceived cliff in response a signal received from the floor proximity sensor.

28. The robot of claim 23 wherein the drive system further comprises: a wheel drop sensor housed near one of the wheels and responsive to substantial downward displacement of the wheel with respect to the chassis.

29. The robot of claim 28 wherein the drive system further comprises a validation system that validates the operability of the floor proximity sensors when all wheels drop.

30. The robot of claim 28 wherein the wheel drop sensor comprises at least one infrared emitter and receiver pair.

31. The robot of claim 23 wherein the lower surface of the receptacle is wedge shaped.

32. The robot of claim 23 wherein the cover comprises a lens.

Description:

TECHNICAL FIELD

This invention relates to robots, and more particularly to autonomous coverage robots.

BACKGROUND

Autonomous robots are robots which can perform desired tasks in unstructured environments without continuous human guidance. Many kinds of robots are autonomous to some degree. Different robots can be autonomous in different ways. An autonomous coverage robot traverses a work surface without continuous human guidance to perform one or more tasks. In the field of home, office and/or consumer-oriented robotics, mobile robots that perform household functions such as vacuum cleaning, floor washing, patrolling, lawn cutting and other such tasks have been widely adopted.

SUMMARY

An autonomous coverage robot will encounter many obstacles while operating. In order to continue operating, the robot will need to continually avoid obstacles, and in cases where trapped by fabric, string, or other entangling soft media, free itself.

In one aspect, an autonomous coverage robot includes a chassis, a drive system mounted on the chassis and configured to maneuver the robot, an edge cleaning head carried by the chassis, and a controller carried by the chassis. The edge cleaning head is driven by an edge cleaning head motor and may rotate about a non-horizontal axis. The edge cleaning head extends beyond a lateral extent of the chassis to engage a floor surface while the robot is maneuvered across the floor. The edge cleaning head may be disposed on or near a peripheral edge of the robot. A brush control process, independent of drive processes, on a controller that controls robot operation is configured to monitor motor current associated with the edge cleaning head. The brush control process on the controller is also configured to reverse bias the edge cleaning head motor in a direction opposite to the previous cleaning direction after detecting a spike (e.g., transient or rapid increase in motor current) or in general an elevated motor current motor (to substantially neutrally rotate and/or be driven to rotate at the same speed as a an unwinding cord, string, or other tangled medium), while continuing to maneuver the robot across the floor performing uninterrupted coverage or cleaning of the floor or other motion behaviors. In one implementation, the brush control process on the controller, following an elevated edge cleaning head motor current, reverse biases the edge cleaning head motor (to substantially neutrally rotate and/or be driven to rotate at the same speed as a an unwinding cord, string, or other tangled medium) and subsequently or concurrently passes a signal to a drive motor control process, directly or indirectly via a supervising process, so that the unwinding may occur at the same time that the robot drives substantially backwards, alters a drive direction, and moves the robot forward.

In one implementation, the edge cleaning head includes a brush with bristles that extend beyond a peripheral edge of the chassis. In one example, the edge cleaning head includes at least one brush element having first and second ends, the bush element defining an axis of rotation about the first end normal to the work surface. The edge cleaning head may rotate about a substantially vertical axis. In one instance, the edge cleaning head includes three brush elements, where each brush element forms an angle with an adjacent brush element of about 120 degrees. In another instance, the edge cleaning head comprises six brush elements, where each brush element forms an angle with an adjacent brush element of about 60 degrees.

In another implementation, the edge cleaning head comprises a rotatable squeegee that extends beyond a peripheral edge of the chassis. The rotatable squeegee may be used for wet cleaning, surface treatments, etc.

In yet another implementation, the edge cleaning head includes a plurality of absorbent fibers that extend beyond a peripheral edge of the chassis upon rotation of the cleaning head. The plurality of absorbent fibers may be used like a mop to clean up spills, clean floors, apply surface treatments, etc.

The robot may include multiple cleaning heads (e.g., two or three) carried by the chassis. In one example, the robot further includes a main cleaning head carried by the chassis, a cleaning head extending across a swath covered by the robot, which forms the main work width of the robot, and which may be driven to rotate about a horizontal axis to engage a floor surface while the robot is maneuvered across the floor. The main cleaning head may include a cylindrical body defining a longitudinal axis of rotation parallel to the work surface, bristles disposed on the cylindrical body, and flexible flaps disposed longitudinally along the cylindrical body. The brush control process on the controller is configured to reverse bias the rotation of the main cleaning head (to substantially neutrally rotate and/or be driven to rotate at the same speed as a an unwinding cord, string, or other tangled medium), in response to an elevated main cleaning head motor current, while a motion control process independently continues to maneuver the robot across the floor. In another example, the robot includes two main cleaning brushes carried by the chassis and driven to rotate about a horizontal axis to engage a floor surface while the robot is maneuvered across the floor. The two main cleaning brushes may be driven to rotate in the same or opposite directions.

In another aspect, a method of disentangling an autonomous coverage robot includes placing the robot on a floor surface, the robot autonomously traversing across the floor surface in a forward direction of the robot while rotating about a non-horizontal axis an edge cleaning head carried by the chassis and driven by an edge cleaning head motor. The edge cleaning head extends beyond a lateral extent of the chassis while engaging the floor surface. The robot independently provides a reverse bias for the edge cleaning head motor (to substantially neutrally rotate and/or be driven to rotate at the same speed as a an unwinding cord, string, or other tangled medium), in response to an elevated edge cleaning head motor current while continuing to maneuver across the floor surface.

In one implementation, the brush control process on the controller of the robot determines movement of the robot in the forward direction before (independently of robot motion control) reversing the rotation of the edge cleaning head in response to an elevated cleaning head motor current. The brush control process of the robot may (independently of robot motion control) reverses the rotation of the edge cleaning head in response to an elevated edge cleaning head motor current for a period of time. In one example, after the brush control process reverses the rotation of the edge cleaning head, the brush control process may directly or through a supervising process pass a signal to the motion control process of the robot to move in a reverse direction, alter a drive direction, and moves in the drive direction.

In another implementation, the robot also includes a main cleaning brush carried by the chassis, which may be driven to rotate about a horizontal axis to engage the floor surface while the robot is maneuvered across the floor. The robot independently reverses the rotation of the main cleaning brush in response to an elevated main cleaning head motor current while continuing to maneuver across the floor surface. The brush cleaning process of the robot may also determine movement of the robot in the forward direction before independently reversing the rotation of the main cleaning brush in response to an elevated main cleaning brush motor current. Furthermore, the brush cleaning process of the robot may also reverse the rotation of the main cleaning brush for a certain period of time or in intervals.

In another aspect, an autonomous coverage robot includes a drive system, a bump sensor, and a proximity sensor. The drive system is configured to maneuver the robot according to a heading (turn) setting and a speed setting. The bump sensor is responsive to a collision of the robot with an obstacle in a forward direction. The proximity sensor is responsive to an obstacle forward of the robot at a proximate distance but not contacting the robot, e.g., 1-10 inches, preferably 1-4 inches. The motion control processes of the drive system may also be configured to reduce the speed setting in response to a signal from the proximity sensor indicating detection of a potential obstacle, while continuing a cleaning or coverage process, including advancing the robot according to the heading setting. Furthermore, the motion control processes of the drive system may also be configured to alter the heading (turn) setting in response to a signal received from the bump sensor indicating contact with an obstacle.

In some instances, the motion control processes of the drive system may be configured to alter the heading setting in response to the signals received from the bump sensor and one or more side proximity sensors to follow a perimeter of the obstacle. In other instances, the drive system may be configured to alter the heading (turn) setting in response to the signals received from the bump sensor and the proximity sensor to direct the robot away from the obstacle. In one example, the drive system is configured to maneuver the robot at a torque (e.g., motor current or motor resistance) setting and the drive system is configured to alter the motor current or motor resistance setting in response to a signal received from the bump sensor indicating contact with an obstacle. The drive system may increase the motor current or motor resistance setting in response to a signal received from the bump sensor indicating contact with an obstacle.

The proximity sensor may include a plurality of sets of at least one infrared emitter and receive pair, directed toward one another to converge at a fixed distance from one another, substantially as disclosed in “Robot obstacle detection system”, U.S. Pat. No. 6,594,844, herein incorporated by reference in its entirety. Alternatively, the proximity sensor may include a sonar device. The bump sensor may include a switch, a capacitive sensor, or other contact sensitive device.

The robot may be placed on the floor. In yet another aspect, a method of navigating an autonomous coverage robot with respect to an object on a floor includes the robot autonomously traversing the floor in a cleaning mode at a full cleaning speed. Upon sensing a proximity of the object forward of the robot, the robot reduces the cleaning speed to a reduced cleaning speed while continuing towards the object until the robot detects a contact with the object. Upon sensing contact with the object, the robot turns with respect to the object and cleans next to the object, optionally substantially at the reduced cleaning speed. The robot may follow a perimeter of the object while cleaning next to the object. Upon leaving the perimeter of the robot, the robot may increase speed to a full cleaning speed. The robot may maintain a substantially constant following distance from the object, may maintain a following distance smaller than the extent of extension of an edge cleaning head or brush beyond a following side of the robot body, or may substantially contact the object while cleaning next to the object in response to the initial, reduced cleaning speed contact with the object. In one example, the following distance from the object is substantially a distance between the robot and the object substantially immediately after the contact with the object. In another example, the following distance from the object is between about 0 and 2 inches.

In one instance, the robot performs a maneuver to move around the object in response to the contact with the object. The maneuver may include the robot moving in a substantially semi-circular path, or a succession of alternating partial spirals (e.g., arcs with progressively decreasing radius) around the object. Alternatively, the maneuver may include the robot moving away from the object and then moving in a direction substantially tangential to the object.

Upon sensing a proximity of the object forward of the robot, the robot may decrease the full cleaning speed to a reduced cleaning speed at a constant rate, an exponential rate, a non-linear rate, or some other rate. In addition, upon sensing contact with the object, the robot may increase a torque (e.g., motor current) setting of the drive, main brush, or side brush motors.

In yet another aspect, an autonomous robot includes a chassis, a drive system mounted on the chassis and configured to maneuver the robot, and a floor proximity sensor carried by the chassis and configured to detect a floor surface below the robot. The floor proximity sensor includes a beam emitter configured to direct a beam toward the floor surface and a beam receiver responsive to a reflection of the directed beam from the floor surface and mounted in a downwardly-directed receptacle of the chassis. The floor proximity sensor may be a substantially sealed unit (e.g., in the downward direction) and may also include a beam-transparent cover having a forward and rearward edge disposed across a lower end of the receptacle to prohibit accumulation of sediment, “carpet fuzz”, hair, or household dust within the receptacle. The cover may include a lens made of an anti-static material. The forward edge of the cover, i.e., the edge of the cover in the direction of robot motion, at the leading edge of the robot, is elevated above the rearward edge. The lower surface of the receptacle may be wedge shaped. In one example, the floor proximity sensor includes at least one infrared emitter and receiver pair, substantially as disclosed in “Robot obstacle detection system”, U.S. Pat. No. 6,594,844.

In one implementation, the drive system of the robot includes at least one driven wheel suspended from the chassis and at least one wheel-floor proximity sensor carried by the chassis and housed adjacent one of the wheels, the wheel-floor proximity sensor configured to detect the floor surface adjacent the wheel. The drive system may also include a controller configured to maneuver the robot away from a perceived cliff in response a signal received from the floor proximity sensor. In some instances, the drive system includes a wheel drop sensor housed near one of the wheels and responsive to substantial downward displacement of the wheel with respect to the chassis. The drive system may include a validation system that validates the operability of the floor proximity sensors when all wheels drop. The validation is based on the inference that all wheels dropped are likely the result of a robot being lifted off the floor by a person, and checks to see that all floor proximity sensors do not register a floor surface (either no reflection measured, or a reflection that is too strong). Any sensor that registers a floor surface or a too strong reflection (e.g., indicating a blocked sensor) is considered blocked. In response to this detection, the robot may initiate a maintenance reporting session in which indicia or lights indicate that the floor proximity sensors are to be cleaned. In response to this detection, the robot will prohibit forward motion until a validation procedure determines that all floor proximity sensors are clear and are functional. Each wheel-floor and wheel drop proximity sensors may include at least one infrared emitter and receiver pair.

DESCRIPTION OF DRAWINGS

FIG. 1 shows an above-perspective view of an example autonomous coverage robot.

FIG. 2 shows a below-perspective view of an example autonomous coverage robot.

FIG. 3 shows an exploded view of an example autonomous coverage robot.

FIG. 4 shows a front-perspective view of an example main cleaning head which may be incorporated in an autonomous coverage robot.

FIG. 5 shows an exploded view of an example main cleaning head which may be used with an autonomous coverage robot.

FIG. 6A shows an above-perspective view of an example edge cleaning head which uses a rotatable brush.

FIG. 6B shows an exploded view of an example edge cleaning head.

FIG. 6C shows schematic views of a tilt of an example edge cleaning head.

FIG. 7 shows an example of an edge cleaning head with a rotatable squeegee.

FIG. 8A shows a bumper which may be used with autonomous coverage robot.

FIG. 8B shows kinetic bump sensors and proximity sensors.

FIG. 9A shows a block diagram of an exemplary robot; FIGS. 9B and 9C show flow charts describing motion control and brush operation.

FIG. 10 shows floor proximity sensors and an attachment brace which may be used for detecting an adjacent floor.

FIGS. 11 and 12 show side and exploded views of a floor proximity sensor.

FIG. 13 shows an exploded view of a cover used with the floor proximity sensor shown in FIGS. 11 and 12.

FIG. 14 is an exploded view showing an example of a caster wheel assembly.

FIG. 15 is an exploded view showing an example of a wheel-drop sensor.

FIG. 16 is a cross-sectional view showing an example of a caster wheel assembly.

FIGS. 17 A-H illustrate examples of methods for disentangling coverage robots with various configurations of cleaning heads.

FIG. 17A illustrates a method of disentangling which may be used with a coverage robot having an agitating roller

FIG. 17B illustrates a method of disentangling which may be used with a coverage robot having an agitating roller and a brush roller.

FIG. 17C has a side view and a bottom view that illustrates a method for disentangling a coverage robot with dual agitating rollers.

FIG. 17D illustrates an alternate method of disentangling with the robot shown in FIG. 17C.

FIG. 17E illustrates a method of disentangling a coverage robot with two agitation rollers and a brush roller.

FIG. 17F illustrates another method of disentangling the coverage robot.

FIG. 17G has a side view and a bottom view illustrating a disentanglement method with a coverage robot 300 with two agitation rollers and two air ducts.

FIG. 17H has a side view and a bottom view illustrating a disentanglement method with a coverage robot 300 with two agitation rollers, a brush roller and two air ducts.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

FIGS. 1-3 show above-perspective, below-perspective, and exploded views of an example autonomous coverage robot 100 . Robot 100 has a chassis 102 , a drive system 104 , an edge cleaning head 106 a , and a controller 108 . Drive system 104 is mounted on the chassis 102 , and is a differential drive (left and right wheels near to or on the center diameter of the robot and independently speed controllable) configured to maneuver robot 100 . Edge cleaning head 106 a is mounted to extend past the side edge of chassis 102 for removing dirt and debris below and immediately adjacent to robot 100 , and more particularly to sweep dirt and debris into the cleaning path of the main cleaning head 106 b as the robot cleans in a forward direction. In some implementations, the main or edge cleaning heads 106 b , 106 a may also be used to apply surface treatments. A controller 108 (also depicted in FIG. 9A) is carried by chassis 102 and is controlled by behavior based robotics to provide commands to the components of robot 100 based on sensor readings or directives, as described below, to clean or treat floors in an autonomous fashion. A battery 109 may provide a source of power for robot 100 and its subsystems. A bottom cover 110 may protect internal portions of robot 100 and keep out dust and debris.

Drive system 104 includes a left drive wheel assembly 112 , a right drive wheel assembly 114 and a castor wheel assembly 116 . Drive wheel assemblies 112 , 114 and castor wheel assembly 116 are connected to chassis 102 and provide support to robot 106 . Controller 108 may provide commands to the drive system to drive wheels 112 and 114 forward or backwards to maneuver robot 100 . For instance, a command may be issued by controller 108 to engage both wheel assemblies in a forward direction, resulting in forward motion of robot 100 . In another instance, a command may be issued for a left turn that causes left wheel assembly 112 to be engaged in the forward direction while right wheel assembly 114 is driven in the rear direction, resulting in robot 100 making a clockwise turn when viewed from above.

FIGS. 4 and 5 show front perspective and exploded views of a main cleaning brush 111 which may be incorporated in the main cleaning head 106 b of the robot 100 via attachment to chassis 102 . General structure of a robot and cleaning heads as disclosed herein is similar to that disclosed in U.S. Pat. No. 6,883,201, herein incorporated by reference in its entirety, except when so noted. In general, when a robot brush becomes entangled with cords, strings, hair, fringes or tassels, the brush motor may encounter overcurrent or temperature rise, and may cause increased energy consumption, poor cleaning, slowing or jamming of the brush. If the robot is so controlled or the entangling item is heavy or secured, the robot may be held in place, and if sensors are available to detect stasis, may stop moving and thereby fail to clean. A robot that gets stuck during its working routine must be “rescued” and cleaned in order to continue autonomous function. Theoretically, there may be additional expenditure of energy to combat static or dynamic friction in the drive wheels, caster, bin squeegee and cleaning head drive train (reverse-drive). The fringes/tassels/cords may wind tightly around a smallest wind diameter of the cleaning brush (e.g., usually the core of a brush 111 , if the brush 111 includes only bristles). If the smallest diameter of the cleaning brush 111 is solid (no elasticity), additional energy may be required to overcome static or dynamic friction in a gear train of the cleaning head and the brushes in contact with the floor, e.g., when the brush is rotated in the opposite within the cleaning head in order to unwind the fringes/tassels/cords. If the tassel or string is permitted to continue winding about the brush, it may be necessary to remove the brush 111 from the cleaning head 106 b in order to remove the entanglement. Main cleaning head 111 has baffles or soft flaps 113 and bristles 115 arranged along a cleaning head body 117 . Soft flaps 113 disposed along the length of cleaning head body 117 may minimize static friction. Cleaning head body 117 may be rotated about its horizontal axis so that it engages the floor surface while robot 100 is moving across a floor, causing baffles 113 and bristles 115 to agitate dirt and debris which may be on the floor's surface. Controller 108 may be configured to reverse bias the rotation of main cleaning head 111 (i.e., provide sufficient reverse current to permit the cleaning brush to freely rotate when the robot draws out and unwinds an entanglement as it moves away in a forward direction) following a sharp rise in or an elevated main cleaning head motor current, while continuing to conduct a cleaning cycle or other cycle as the controller 108 executes individual motion control behaviors to move the robot 100 across the floor. A rim 116 of soft flaps 113 in this case can become the smallest diameter of cleaning head 111 . Rim 116 is flexible (pliable, soft), so as to require little energy to deform, potentially diverting energy away from that required to initiate robot 100 movement. A momentary delay in a brush gear train encountering static friction provides an opportunity for robot 100 to resume movement, thereby enabling easier disentanglement of brushes. Similarly, a cord or tassel may become less entangled about the larger diameter of the rim 116 (in comparison to a core such as core 117 or even smaller core) simply because the brush 111 does not complete as many turns per unit length of entangled cord or tassel. Furthermore, a length-wise scooped (curved) nature of the flaps 13 further acts as a spring forcing the tassels/fringes to unravel/open during the momentary lag between the robot being set in motion and a reverse bias to bias back-driving of the entangled cleaning head 111 . Bristles 115 may be used primarily used to clean, while flaps 113 may be used primarily for disentanglement purposes. This allows robot 100 to continue to clean (agitate the carpet) if an entangled string snaps off and gets retained by flaps 113 in cleaning head 111 . Other robot details and features combinable with those described herein may be found in the following U.S. Provisional Patent Application No. 60/747,791, the entire contents of which are hereby incorporated by reference.

FIGS. 6A and 6B show above-perspective and exploded views of edge cleaning head 106 . Edge cleaning head 106 a is carried by chassis 102 and driven by an edge cleaning head motor 118 and drive transmission 119 to rotate a brush 120 about a non-horizontal axis. Brush 120 has brush elements 122 A-F that extend beyond a peripheral edge of chassis 102 . Each brush element 122 A-F forms an angle of about 60 degrees with adjacent brush elements and is tipped with bristles extending along the axis of the elements. Brush 120 may be rotated about a vertical axis, such that the ends of bush elements 122 A-F move normal to the work surface. Edge cleaning head 106 may be located near the edge of robot 100 so that brush 120 is capable of sweeping dirt and debris beyond the edge of chassis 102 . In some implementations, the edge cleaning head 106 operates about an axis offset (tilted) from a vertical axis of the robot. As shown in schematic form in FIG. 6C the brush 106 may be tilted, in both forward and side to side directions (i.e., tilted downward with respect to the plane of wheel contact about a line about 45 degrees from the direction of travel within that plane), in order to collect debris from outside the robot's periphery toward the main work width, but not disturb such collected debris once it is there or otherwise eject debris from the work width of the robot. The axis offset is optionally adjustable to customize the tilt of the cleaning head 106 to suit various carpet types, such as shag.

Other configurations of edge cleaning heads may also be used with robot 100 . For example, an edge cleaning head may have three evenly-spaced brush elements separated by 120 degrees. FIG. 7 shows another example of an edge cleaning head 124 in which a rotatable squeegee 126 is used in place of a brush. In other configurations, an edge cleaning head may have one or more absorbent fibers that extend beyond a peripheral edge of chassis 102 .

FIG. 8A shows a bumper 130 which may be used with the autonomous coverage robot 100 . FIG. 8B shows proximity sensors 134 which may be housed within bumper 130 . Drive system 104 may be configured to maneuver robot 100 according to a heading setting and a speed setting. Proximity sensors 134 may sense a potential obstacle in front of the robot.

FIG. 9A shows a schematic view of electronics of the robot 100 . The robot 100 includes a controller 103 which communicates with a bumper micro-controller 107 A, that together control an omni-directional receiver, directional receiver, the wall proximity sensors 134 , and the bumper switches 132 . The controller 103 monitors all other sensor inputs, including the cliff sensors 140 and motor current sensors for each of the motors.

Control of the direction and speed of the robot 100 may be handled by motion control behaviors selected by an arbiter according to the principles of behavior based robotics for coverage and confinement, generally disclosed in U.S. Pat. Nos. 6,809,490 and 6,781,338, herein incorporated by reference in their entireties (and executed by controller 108 ), to reduce the speed magnitude of robot 100 when proximity sensor 134 detects a potential obstacle. The motion behaviors executed by the controller 108 may also alter the velocity of robot 100 when kinetic bump sensors 132 detect a collision of robot 100 with an obstacle. Accordingly, referring to FIG. 9A, robot 100 traverses a floor surface by executing a cruising or STRAIGHT behavior 900 . When robot 100 detects a proximate, but not yet contacting obstacle via proximity sensors 134 , robot 100 executes a gentle touch routine 902 (which may be a behavior, a part of a behavior, or formed by more than one behavior), in which robot 100 does not proceed at full cleaning speed into the obstacle; but instead reduces its approach speed from a full cleaning speed of about 300 mm/sec to a reduced cleaning speed of about 100 mm/sec via controller 108 toward the potential obstacle, such that when a collision does occur, the collision is less noisy, and less likely to mar surfaces. The overall noise, the potential damage to the robot 100 or the object being collided thereby is reduced. When robot 100 detects contact with the object via kinetic bump sensors 132 , robot 100 executes one of the following routines: bounce 910 , follow obstacle perimeter 912 , alter drive direction and move away from object 914 , or alter drive direction to curve to approach the object and follow along it (e.g., a wall). Bounce 910 entails robot 100 moving so as to bounce along the object. Follow obstacle perimeter 912 entails robot 100 using proximity sensors 134 to follow along a perimeter of the object at a predefined distance to, for example, clean up close to the object and/or clean to the very edge of a wall. The robot 100 continuously cleans the room, and when it detects a proximate object (which may be a wall, table, chair, sofa, or other obstacle) in the forward direction, it continues cleaning in the same direction without interruption, albeit at a reduced speed. In predetermined and/or random instances, the robot 100 will bump the object, turn in place so that the edge of the main cleaning head 106 b is as close to the wall as possible, and closely follow the object on the side of the robot, essentially at the reduced cleaning speed, such that the side/edge brush 106 a collects debris or dirt from the corner between the floor and the wall or obstacle. Once the robot 100 leaves the wall, after a predetermined and/or randomized distance within predetermined limits, the robot 100 increases its speed up to full cleaning speed. On other occasions, it will bump the object, turn in place until facing away from the object or wall, and immediately proceed away from the object or wall at full cleaning speed.

The robot 100 employs a behavioral software architecture within the controller 103 . While embodiments of the robot 100 discussed herein may use behavioral based control only in part or not at all, behavior based control is effective at controlling the robot to be robust (i.e. not getting stuck or failing) as well as safe. The robot 100 employs a control and software architecture that has a number of behaviors that are executed by an arbiter in controller 103 . A behavior is entered into the arbiter in response to a sensor event. In one embodiment, all behaviors have a fixed relative priority with respect to one another. The arbiter (in this case) recognizes enabling conditions, which behaviors have a full set of enabling conditions, and selects the behavior having the highest priority among those that have fulfilled enabling conditions. In order of decreasing priority, the behaviors are generally categorized as escape and/or avoidance behaviors (such as avoiding a cliff or escaping a corner), and working behaviors (e.g., wall following, bouncing, or driving in a straight line). The behaviors may include: different escape (including escaping corners, anti-canyoning, stuck situations, “ballistic” temporary fire-and-forget movement that suppress some avoid behaviors, e.g., as disclosed in U.S. Pat. No. 6,809,490) cliff avoiding, virtual wall avoiding (a virtual wall may be a beacon with a gateway beam), spot coverage (covering in a confined pattern such as a spiral or boustrophedon patch), align (turning in place, using side proximity sensors to align with a forward obstacle encountered while obstacle following, e.g., an inside corner), following (representing either or both of substantially parallel or bump following along an obstacle using a side proximity sensor or bumper that extends to the side of the robot), responding to a bump in order to “bounce” (a behavior that occurs after the robot bumps an object), and drive (cruising). Movement of the robot, if any, occurs while a behavior is arbitrated. If more than one behavior is in the arbiter, the behavior with a higher priority is executed, as long as any corresponding required conditions are met. For example, the cliff avoiding behavior will not be executed unless a cliff has been detected by a cliff detection sensor, but execution of the cliff avoiding behavior always takes precedence over the execution of other behaviors that also have satisfied enabling conditions.

The reactive behaviors have, as their enabling conditions or triggers, various sensors and detections of phenomena. These include sensors for obstacle avoidance and detection, such as forward proximity detection (multiple), forward bump detection (multiple), cliff sensors (multiple), detection of a virtual wall signal (which may instead be considered a coverage trigger). Sensors of these types are be monitored and conditioned by filters, conditioning, and their drivers, which can generate the enabling conditions as well as record data that helps the behavior act predictably and on all available information (e.g., conversion to one-bit “true/false” signals, recording of likely angle of impact or incidence based on strength or time differences from a group of sensors, or historical, averaging, frequency, or variance information).

Actual physical sensors may be represented in the architecture by “virtual” sensors synthesized from the conditioning and drivers. Additional “virtual” sensors that are synthesized from detectable or interpreted physical properties, proprioceptive or interpreted upon the robot 100 , such as over-current of a motor, stasis or stuck condition of the robot 100 (by monitoring a lack of odometry reading from a wheel encoder or counter), battery charge state via coulometry, and other virtual sensors.

In addition, reactive behaviors can act according to enabling conditions that represent detected phenomena to be sought or followed. A beam or wireless (RF, acoustic) signal can be detected without direction; or in some cases with direction. A remote beam or marker (bar code, retro-reflective, distinctive, fiducial, or natural recognized by vision landmark) giving a direction can permit homing or relative movement; without direction the robot 100 can nonetheless move to servo on the presence, absence, and/or relative strength of a detected signal. The reflection of a beam from the robot 100 , edge, or line can be similarly detected, and following behaviors (such as obstacle following by the robot 100 ) conducted by servoing on such signal. A debris or artifact signal can be collected by monitoring debris or objects collected by or traversed by the robot, and that signal can be an enabling condition for a reactive behavior controlling a spot coverage pattern.

The robot 100 maintains concurrent processes, “parallel” processes that are not generally considered reactive behaviors. A scheduler may be necessary to allocate processor time to most other processes, e.g., including the arbiter and behaviors, in a co-operative or other multitasking manner. If more threading is available, less processes may be managed by the scheduler. As noted, filters and conditioning and drivers, can interpret and translate raw signals. These processes are not considered reactive behaviors, and exercise no direct control over the motor drives or other actuators. In addition, in the present embodiment, brush motor controller(s) control the main and side brushes, although these may alternatively be controlled by dedicated brush behaviors and a brush control arbiter.

In accordance with another example, the gentle touch routine 902 may employ an infrared proximity detector 134 that should go off (i.e., when a receiver receives from a reflection originating in the overlapping space of an emitter and receiver angled toward one another) from about 1 to 10 inches (preferably, from 1 to 4 inches. This distance is selected in order to be within the effective range of the IR proximity or cross-beam sensor 134 , yet with sufficient time to slow the mobile robot 100 before a collision with a detected obstacle). Conventional proximity sensors return a signal strength depending on obstacle albedo; cross-beam sensors 134 can be thresholded for various albedos intruding in the specific distance from the sensor where the receiver and emitter's beam/field cross. Additionally, slowing down based on a proximately detected wall may be suppressed in or turned off by the user, independently of the bump sensor 132 . Controller 108 may slow the robot's descent substantially in a steady reduction then cruise slowly. Controller 108 may execute an S-curve slowly over about 3 inches, can slow down steadily but at an accelerating or decelerating rate over about 3 inches. During escape behaviors, for example, panic, stasis, stuck, anti-canyoning, the robot may essentially can be turn off the proximity sensors 134 —usually by not using the proximity sensors 134 as an enabling condition for any escape behavior or some avoidance behaviors

Drive system 104 may be configured to reduce the speed setting in response to a signal from proximity sensor 134 which indicating detection of a forward obstacle, while continuing to advance the robot 100 and work the floor or surface according to the existing heading setting. Drive system 104 may be configured to alter the heading setting in response to a signal received from bump sensor 132 that indicates contact with an obstacle. For example, drive system 104 may be configured to alter the heading setting in response to the signals received from the bump sensor 132 and the proximity sensor 134 such that robot 100 follows a perimeter of the obstacle. In another example, drive system 104 may be configured to change heading to direct robot 104 away from the obstacle.

Proximity sensors 134 may include one or more pairs of infrared emitters and receivers. For instance, a modulated emitter and a standard receiver may be used. A light pipe (not shown), collimating or diffusing optics, Fresnel or diffractive optics, may be used in some implementations to eliminate blind spots by providing a more uniform light pattern or a light pattern more concentrated or more likely to be detected in high probability/high impact areas, such as the immediate forward direction. Alternatively, some implementations may make use of sonar or other types of proximity sensors.

In some implementations, kinetic bump sensor 132 may include a mechanical switch 130 . In some implementations, bump sensor 132 may include a capacitive sensor. Other types of contact sensors may also be used as well.

Drive system 104 may be configured to maneuver robot 100 at a torque (or motor current) setting in response to a signal received from bump sensor 132 which indicates contact with an obstacle. For instance, drive system 104 may increase the torque (or motor current) setting in response to a signal received from the bump sensor indicating contact with an obstacle.

In another example method of navigating an autonomous coverage robot with respect to an object on a floor, robot 100 may be initially placed on the floor (or may already be on the floor, e.g., if the robot starts itself from a charging dock) with robot 100 autonomously traversing the floor in a cleaning mode at a full cleaning speed. If robot 100 senses a nearby object in front of robot 100 , it reduces the cleaning speed (e.g., to a reduced cleaning speed) and continues moving toward the object and working/cleaning the floor until detecting impact, which is likely to be with the object but may be another object. Upon sensing impact with an object, robot 100 turns with respect to the object that it bumped and cleans next to, i.e., along, the object. Robot 100 may, for instance, follow the object's perimeter while cleaning along or next to the object. In another instance, robot 100 may maintain a somewhat constant following distance from the object while cleaning next to the object in response to the contact with the object. The following distance from the object may be a distance between robot 100 and the object immediately after the contact with the object, for instance, 0 to 2 inches. The distance is optionally less than the distance that the side or edge brush unit 106 a extends beyond the side of the robot.

Robot 100 may, in some instances, perform a maneuver to move around the object in response to the contact with the object. For example, robot 100 may move in a somewhat semi-circular path around the object, or a succession of alternating partial spirals (e.g., arcs with progressively decreasing radius). In another instance, robot 100 may move away from the object and then move in a direction that is somewhat tangential to the object.

Robot 100 may decrease the cleaning speed to a reduced speed at a constant rate, for instance, at a non-linear or exponential rate. The full cleaning speed of robot 100 may be about 300 mm/s and the reduced cleaning speed of robot 100 may be about 100 mm/s.

FIG. 10 shows kinetic bump sensors 132 , floor proximity sensors 140 and an attachment brace 142 which may be used with robot 100 for detecting an adjacent floor. Kinetic bump sensors 132 may sense collisions between robot 100 and objects in the robot's forward path. Floor proximity sensors may be carried by chassis 102 and be used to sense when robot 100 is near a “cliff”, such as a set of stairs. Floor proximity sensors 140 may send signals to controller 108 indicating whether or not a cliff is detected. Based on signals from the floor proximity sensors 140 , controller 108 may direct drive system 104 to change speed or velocity to avoid the cliff.

FIGS. 11 and 12 show side and exploded views of a floor proximity sensor 140 . Floor proximity sensor 140 has a body with a forward section 144 , a rear section 146 , an emitter 148 , a receiver 150 , and a cover 152 . Emitter 148 and receiver 150 may be capable of emitting and receiving infrared light. Emitter 148 and receiver 150 are arranged within the forward and rear body sections 144 , 146 at an angle so that their axes line up at a point beneath robot 100 at the approximate floor distance.

FIG. 13 shows an exploded view of cover 152 . Cover 152 consists of a lens 154 and a cover body 156 . Lens 152 may be transparent to infrared light and cover body 156 may be opaque to facilitate focusing emissions sent from emitter 148 . The forward edge 158 of cover 152 is elevated above its rearward edge 159 to aid in reducing dust build up and to ensure that light is received by receiver 150 primarily when sensor 140 is positioned correctly over a floor and a reduced amount is received when sensor 140 is over a “cliff”. In some implementations, cover 152 is constructed using a material with anti-static (dissipative or conductive) properties,