# US 9,436,185 B2 · Coverage robot navigating

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,436,185 B2
- Document ID: US9436185B2
- Status: Granted
- Kind: B2
- Application number: 13/340,802
- Filed: 2011-12-30
- Published: 2012-07-05
- Granted: 2016-09-06
- Earliest claimed: 2010-12-30
- Assignees: iRobot Corporation
- Applicants: Mark Steven Schnittman
- Inventors: Mark Steven Schnittman
- Web page: https://patentgrep.com/patent/US9436185B2

## CPC

- G05D 1/024: {in combination with a laser (lasers per se H01S)}
- G05D 1/0227: {using mechanical sensing means, e.g. for sensing treated area}
- G05D 1/027: {comprising intertial navigation means, e.g. azimuth detector (inertial navigation G01C21/16; inertial navigation combined with non-inertial navigation instruments G01C21/165)}
- G05D 1/0242: {using non-visible light signals, e.g. IR or UV signals}
- G05D 1/0246: {using a video camera in combination with image processing means}
- G05D 1/0255: {using acoustic signals, e.g. ultra-sonic singals (sonar systems designed for anti-collision purposes G01S15/93)}
- G05D 1/0272: {comprising means for registering the travel distance, e.g. revolutions of wheels (measuring distance traversed on the ground by vehicles, e.g. using odometers G01C22/00)}
- G05D: SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES

## Abstract

A method of navigating an autonomous coverage robot on a floor includes controlling movement of the robot across the floor in a cleaning mode, receiving a sensor signal indicative of an obstacle, rotating the robot away from the sensed obstacle, determining a change in the received sensor signal during at least a portion of the rotation of the robot away from the sensed obstacle, and identifying the sensed obstacle based at least in part on the determined change in the received sensor signal.

## Claims

### Claim 1

A method of navigating an autonomous coverage robot on a floor, the method comprising:
controlling movement of the robot across the floor in a cleaning mode along a stored heading;
receiving a sensor signal indicative of a nearing obstacle;
in response to receiving the sensor signal indicative of the obstacle, reducing a speed of the coverage robot across the floor prior to contact with the obstacle;
subsequent to reducing the speed of the coverage robot, controlling movement of the robot to cause the robot to rotate in a clockwise direction and in a counterclockwise direction;
determining a change in a received sensor signal during at least a portion of rotation of the robot in the clockwise direction and in the counterclockwise direction;
determining a width of the obstacle based at least in part on the determined change in the received sensor signal;
controlling movement of the robot based on the determined width of the sensed obstacle, including:
in response to determining that the width of the sensed obstacle is less than a threshold, navigating the autonomous robot according to a first behavior in which the robot travels to an opposite side of the obstacle and then resumes movement along the stored heading, the first behavior comprising directing the robot to execute an orbiting routine comprising turning toward the sensed obstacle using an orbit radius based on the determined width of the sensed obstacle and increasing the orbit radius in response to a failure to move around the object by the orbiting routine.

### Claim 2 (depends on 1)

The method of claim 1 wherein receiving the sensor signal indicative of the obstacle comprises determining an increase in the received sensor signal strength.

### Claim 3 (depends on 1)

The method of claim 1 wherein determining the change in the received sensor signal comprises determining a peak in the strength of the received sensor signal.

### Claim 4 (depends on 3)

The method of claim 3 wherein determining the peak in the strength of the received sensor signal comprises low pass filtering the received sensor signal and comparing the low pass filtered sensor signal to an instantaneous sensor signal.

### Claim 5 (depends on 3)

The method of claim 3 wherein determining the width of the sensed obstacle comprises storing a first robot heading associated with the received sensor signal indicative of the obstacle and storing a second robot heading associated with the determined peak in the received sensor signal.

### Claim 6 (depends on 5)

The method of claim 5 wherein determining the width of the sensed obstacle further comprises determining the width of the sensed obstacle based at least in part on the difference between the stored first and second robot headings.

### Claim 7 (depends on 1)

The method of claim 1 wherein the threshold is set based at least in part on the strength of the received sensor signal and/or the width of the obstacle.

### Claim 8 (depends on 6)

The method of claim 6 wherein the robot defines a fore-aft axis and the sensor signal, indicative of the obstacle, is received from one of a first sensor and a second sensor, the first sensor and the second sensor disposed on respective right and left sides of the fore-aft axis.

### Claim 9 (depends on 1)

The method of claim 1 wherein navigating the autonomous robot according to the first behavior further comprises in response to reaching a preset number of attempts at orbiting the object via the orbiting routine, discontinuing the orbiting routine and executing a post-wiggle trigger comprising a plurality of rotations in alternating directions.

### Claim 10 (depends on 9)

The method of claim 9 wherein the robot is substantially cylindrical and directing the robot to turn toward the sensed obstacle comprises turning the robot with a radius greater than or equal to the radius of the robot.

### Claim 11 (depends on 10)

The method of claim 10 wherein the robot is directed to turn with a radius about equal to the radius of the robot to about 1.8 times the radius of the robot.

### Claim 12 (depends on 9)

The method of claim 9 wherein directing the robot to turn toward the sensed obstacle comprises directing the robot to turn until the first robot heading is reached and, upon reaching the first robot heading, directing the robot to move along a substantially straight path corresponding to the first robot heading.

### Claim 13 (depends on 1)

The method of claim 1 wherein the orbit radius is progressively increased in proportion to an angular width of the detected object.

### Claim 14 (depends on 1)

The method of claim 1 wherein navigating the autonomous robot according to the second behavior comprises maneuvering the robot to follow the sensed obstacle at a substantially fixed distance by changing a turning radius of the robot.

### Claim 15 (depends on 1)

The method of claim 1 further comprising, subsequent to reducing the speed of the coverage robot and prior to controlling movement of the robot to cause the robot to rotate in a clockwise direction and in a counterclockwise direction, controlling movement of the robot to cause the robot to back away from the obstacle by moving along a heading that is opposite of the stored heading.

### Claim 16 (depends on 1)

The method of claim 1 further comprising scanning for a second obstacle after resuming movement along the stored heading.

### Claim 17 (depends on 1)

The method of claim 1 wherein navigating the autonomous robot according to the first behavior comprises causing the robot to:
follow an arcuate path about the obstacle with a side brush of the robot cleaning against the obstacle until the robot has reached the opposite side of the obstacle, and then to
resume the stored heading.

### Claim 18 (depends on 17)

The method of claim 17 wherein the robot is cylindrical and wherein causing the robot to follow an arcuate path comprises turning the robot toward the sensed obstacle with a turning radius of between 1 and 1.8 times the radius of the robot.

### Claim 19 (depends on 17)

The method of claim 17 wherein causing the robot to follow an arcuate path comprises turning the robot toward the sensed obstacle with a turning radius determined as a function of the determined width of the obstacle.

### Claim 20 (depends on 17)

The method of claim 17 wherein causing the robot to follow the arcuate path about the obstacle comprises operating a side brush of the robot to clean against the obstacle during the first behavior.

### Claim 21 (depends on 1)

The method of claim 1 wherein navigating the autonomous robot according to the second behavior comprises navigating the autonomous robot according to a bounce mode.

### Claim 22 (depends on 1)

The method of claim 1 wherein navigating the autonomous robot according to the second behavior comprises navigating the autonomous robot according to a wall following mode.

### Claim 23 (depends on 1)

The method of claim 1 further comprising:
sensing the obstacle by contacting the obstacle; and
backing away from the obstacle before causing the robot to rotate in the clockwise direction and in the counterclockwise direction.

### Claim 24

A method of navigating an autonomous coverage robot on a floor, the method comprising:
storing a heading of the autonomous coverage robot;
moving the autonomous coverage robot in a cleaning mode along the stored heading to an obstacle;
receiving a sensor signal indicative of a nearing obstacle along the heading;
in response to receiving the sensor signal indicative of the nearing obstacle, moving the autonomous coverage robot away from the obstacle along a heading that is opposite of the stored heading;
scanning the obstacle with a sensor carried on the autonomous coverage robot to determine an angular width of the obstacle;
classifying the obstacle based at least in part on whether the determined angular width is above or below a threshold; and
maneuvering the robot as a function of the classification of the obstacle, according to an algorithm including:
in response to classifying the obstacle based on the determined angular width being below the threshold:
orbiting the autonomous coverage robot around at least a portion of the classified obstacle based on an orbiting routine while comparing the stored heading to the heading of the autonomous coverage robot during orbiting of the classified obstacle, wherein the orbiting routine comprises turning the autonomous coverage robot toward the sensed obstacle using an orbit radius based on the determined angular width of the sensed obstacle and increasing the orbit radius in response to a failure to move around the object by the orbiting routine; and
resuming the stored heading based at least in part on the comparison of the stored heading to the heading of the autonomous coverage robot during orbiting; and
in response to classifying the obstacle based on the determined angular width being above the threshold, turning the robot and maneuvering the robot away from the obstacle along a revised heading.

### Claim 25 (depends on 24)

The method of navigating the autonomous coverage robot of claim 24 wherein resuming the stored heading comprises interrupting orbiting of the autonomous coverage robot if the heading of the autonomous coverage robot during orbiting equals the stored heading.

### Claim 26 (depends on 24)

The method of navigating the autonomous coverage robot of claim 24 wherein resuming the stored heading comprises turning the autonomous coverage robot toward the stored heading.

### Claim 27 (depends on 24)

The method of navigating the autonomous coverage robot of claim 24 wherein orbiting the autonomous coverage robot comprises moving the autonomous coverage robot with a radius greater than a turning perimeter of the autonomous coverage robot.

### Claim 28 (depends on 24)

The method of navigating the autonomous coverage robot of claim 24 wherein scanning the sensor carried on the autonomous coverage robot comprises turning the autonomous coverage robot to move the sensor.

### Claim 29 (depends on 24)

The method of navigating the autonomous coverage robot of claim 24 wherein scanning the sensor carried on the autonomous coverage robot comprises moving the sensor relative to the autonomous coverage robot.

### Claim 30 (depends on 24)

The method of navigating the autonomous coverage robot of claim 24 wherein the sensor comprises one or more of the following: a camera, a laser, and a proximity sensor, and an acoustic sensor.

### Claim 31 (depends on 24)

The method of claim 24 further comprising:
sensing the obstacle by contacting the obstacle; and
backing away from the obstacle before scanning the obstacle.

### Claim 32

A method of navigating an autonomous coverage robot on a floor, the method comprising:
controlling movement of the robot across the floor in a cleaning mode;
receiving a sensor signal indicative of an obstacle;
rotating the robot away from the sensed obstacle;
determining a change in the received sensor signal during at least a portion of the rotation of the robot away from the sensed obstacle;
determining a width of the obstacle based at least in part on the determined change in the received sensor signal; and
controlling movement of the robot based on the determined width of the sensed obstacle including:
in response to determining that the width of the sensed obstacle is less than a threshold, navigating the autonomous robot according to a first behavior in which the robot travels to an opposite side of the obstacle and then resumes movement along the stored heading, the first behavior comprising directing the robot to execute an orbiting routine comprising turning toward the sensed obstacle using an orbit radius based on the determined width of the sensed obstacle and increasing the orbit radius in response to a failure to move around the object by the orbiting routine.
