# US 10,500,722 B2 · Localization and mapping using physical features

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

- Number: US 10,500,722 B2
- Document ID: US10500722B2
- Status: Granted
- Kind: B2
- Application number: 15/451,756
- Filed: 2017-03-07
- Published: 2017-08-24
- Granted: 2019-12-10
- Earliest claimed: 2015-03-18
- Assignees: iRobot Corporation
- Applicants: iRobot Corporation
- Inventors: Jasper Vicenti
- Web page: https://patentgrep.com/patent/US10500722B2

## CPC

- G05D 1/246: using environment maps, e.g. simultaneous localisation and mapping [SLAM]
- G05D 1/0219: {ensuring the processing of the whole working surface}
- G05D 1/0227: {using mechanical sensing means, e.g. for sensing treated area}
- 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 1/0274: {using mapping information stored in a memory device (navigation using map-matching G01C21/30)}
- G05D 1/622: Obstacle avoidance (predicting or avoiding probable or impending collision of road vehicles B60W30/08)
- G05D 1/644: Optimisation of travel parameters, e.g. of energy consumption, journey time or distance
- G05D 1/648: Performing a task within a working area or space, e.g. cleaning
- A47L 2201/00: Robotic cleaning machines, i.e. with automatic control of the travelling movement or the cleaning operation
- A47L 2201/04: Automatic control of the travelling movement; Automatic obstacle detection
- B25J 9/163: {learning, adaptive, model based, rule based expert control}
- B25J 9/1664: {characterised by motion, path, trajectory planning}
- B25J 9/1666: {Avoiding collision or forbidden zones}
- G05D 1/0238: {using obstacle or wall sensors (G05D1/0246 and G05D1/0289 take precedence; lidar systems designed for anti-collision purposes G01S17/93)}
- G05D 1/628: following the obstacle profile, e.g. a wall or undulated terrain
- Y10S 901/01: Mobile robot
- G05D: SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- A47L: DOMESTIC WASHING OR CLEANING (brushes A46B; cleaning quantities of bottles or of other hollow articles of one kind B08B9/00; laundry D06F); SUCTION CLEANERS IN GENERAL (cleaning in general B08)
- B25J: MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES ({manipulators specially adapted for use in surgery A61B34/70; manipulators used in cleaning hollow articles B08B9/04}; manipulators associated with rolling mills B21B39/20; manipulators associated with forging machines B21J13/10; {manipulators associated with picking-up and placing mechanisms B23P19/007}; means for holding wheels or parts thereof B60B30/00; {vehicles with ground-engaging propulsion means, e.g. walking members B62D57/02, B62D57/032; devices for picking-up and depositing articles or materials between conveyors B65G47/90, B65G47/91; manipulators with gripping or holding means for transferring packages B65H67/065}; cranes B66C; {manipulators used in the protection or supervision of pipe-line installations F17D5/00; walking equipment adapted for nuclear steam-generators F22B37/006}; manipulators specially adapted for, or associated with, nuclear reactors G21C; {apparatus used for handling wafers during manufacture or treatment of semiconductor H10P72/50})
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

A method includes maneuvering a robot in (i) a following mode in which the robot is controlled to travel along a path segment adjacent an obstacle, while recording data indicative of the path segment, and (ii) in a coverage mode in which the robot is controlled to traverse an area. The method includes generating data indicative of a layout of the area, updating data indicative of a calculated robot pose based at least on odometry, and calculating a pose confidence level. The method includes, in response to the confidence level being below a confidence limit, maneuvering the robot to a suspected location of the path segment, based on the calculated robot pose and the data indicative of the layout and, in response to detecting the path segment within a distance from the suspected location, updating the data indicative of the calculated pose and/or the layout.

## Claims

### Claim 1

A method of navigating an autonomous cleaning robot within an area, the method comprising:
maneuvering the robot about the area
while generating (i) data indicative of a robot pose relative to a physical layout of the area, or (ii) data indicative of the physical layout of the area, and
while generating data indicative of a plurality of path segments adjacent one or more edges at least partially defining the physical layout of the area;
in response to a robot pose confidence level being below a predetermined confidence limit, selecting a path segment from among the plurality of path segments and selecting a trajectory of the robot to approach a suspected location of the path segment from an initial location of the robot;
maneuvering the robot from the initial location of the robot, along the selected trajectory, and toward the suspected location of the path segment; and
in response to detecting the path segment within a distance from the suspected location of the path segment, updating (i) the data indicative of the robot pose or (i) the data indicative of the physical layout of the area.

### Claim 2 (depends on 1)

The method of claim 1, further comprising storing data indicative of locations of the plurality of path segments while the robot is maneuvered about the area.

### Claim 3 (depends on 2)

The method of claim 2, wherein the path segment is selected based on a duration of time elapsed between storing the data and the confidence level being less than a predetermined confidence limit.

### Claim 4 (depends on 1)

The method of claim 1, wherein the path segment is selected based on a shortest of distances between a current location of the robot and each of the plurality of path segments.

### Claim 5 (depends on 1)

The method of claim 1, wherein updating the data indicative of the robot pose or the data indicative of the physical layout of the area comprises re-localizing data indicative of locations of two or more of the plurality of path segments to the data indicative of the physical layout of the area.

### Claim 6 (depends on 1)

The method of claim 1, further comprising collecting data from a sensor on the robot while maneuvering the robot about the area and while updating the data indicative of the robot pose or the data indicative of the physical layout of the area based on the collected data.

### Claim 7 (depends on 6)

The method of claim 6, wherein the sensor comprises an odometer, a radiation transceiver, a bump sensor, a pressure sensor, or a proximity sensor.

### Claim 8 (depends on 1)

The method of claim 1, further comprising, after maneuvering the robot to the suspected location of the path segment, maneuvering the robot in a following mode to follow an edge of the one or more edges, the edge being proximate the suspected location of the path segment,
wherein updating the data indicative of the robot pose or the data indicative of the physical layout of the area comprises:
determining whether a path of the robot along the edge matches the path segment, and
upon determining a match, updating the data indicative of the robot pose or the data indicative of the physical layout of the area.

### Claim 9 (depends on 8)

The method of claim 8, wherein determining whether the path of the robot along the edge matches the path segment comprises comparing lengths, starting poses, ending poses, straight distances traveled, or curvatures of the path of the robot and the path segment.

### Claim 10 (depends on 1)

The method of claim 1, wherein detecting the path segment within the distance from the suspected location of the path segment comprises detecting an edge proximate the path segment.

### Claim 11 (depends on 10)

The method of claim 10, wherein detecting the edge comprises physically contacting an obstacle.

### Claim 12 (depends on 1)

The method of claim 1, wherein generating the data indicative of the physical layout of the area comprises analyzing image data from a camera on the robot.

### Claim 13 (depends on 1)

The method of claim 1, wherein:
maneuvering the robot about the area to clean the area comprises maneuvering the robot about the area in a coverage mode, and
the method further comprises, after updating the data indicative of the robot pose or the data indicative of the physical layout of the area, again maneuvering the robot about the area in the coverage mode to clean the area.

### Claim 14 (depends on 13)

The method of claim 13, further comprising:
after updating the data indicative of the robot pose or the data indicative of the physical layout of the area, maneuvering the robot to the initial location of the robot before again maneuvering the robot about the area in the coverage mode to clean the area.

### Claim 15 (depends on 1)

The method of claim 1, wherein:
maneuvering the robot about the area to clean the area comprises maneuvering the robot about the area in a coverage mode, and
the method further comprises, in response to detecting an edge while maneuvering the robot in the coverage mode, initiating a following mode to follow the edge.

### Claim 16 (depends on 1)

The method of claim 1, wherein the plurality of path segments includes a path segment along a corner defined by walls.

### Claim 17 (depends on 1)

The method of claim 1, wherein selecting the trajectory comprises selecting an approach angle to maneuver to the suspected location of the path segment.

### Claim 18 (depends on 1)

The method of claim 1, wherein selecting the trajectory comprises selecting an approach path from an initial location of the robot to the suspected location of the path segment.
