# US 9,427,875 B2 · Carpet drift estimation using differential sensors or visual measurements

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

- Number: US 9,427,875 B2
- Document ID: US9427875B2
- Status: Granted
- Kind: B2
- Application number: 14/949,002
- Filed: 2015-11-23
- Published: 2016-03-17
- Granted: 2016-08-30
- Earliest claimed: 2012-06-08
- Assignees: iRobot Corporation
- Applicants: iRobot Corporation
- Inventors: Dhiraj Goel; Ethan Eade; Philip Fong; Mario E. Munich
- Web page: https://patentgrep.com/patent/US9427875B2

## CPC

- B25J 9/1697: {Vision controlled systems}
- B25J 5/007: {mounted on wheels}
- B25J 9/1628: {characterised by the control loop}
- B25J 9/1664: {characterised by motion, path, trajectory planning}
- B25J 11/0085: {Cleaning}
- G05D 1/0253: {extracting relative motion information from a plurality of images taken successively, e.g. visual odometry, optical flow (determining position or orientation from images G06T7/70)}
- G05D 1/0268: {using internal positioning means}
- 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/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/24: Arrangements for determining position or orientation
- G05D 1/244: using passive navigation aids external to the vehicle, e.g. markers, reflectors or magnetic means
- G05D 1/40: Control within particular dimensions
- G05D 1/644: Optimisation of travel parameters, e.g. of energy consumption, journey time or distance
- Y10S 901/01: Mobile robot
- 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})
- G05D: SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

Apparatus and methods for carpet drift estimation are disclosed. In certain implementations, a robotic device includes an actuator system to move the body across a surface. A first set of sensors can sense an actuation characteristic of the actuator system. For example, the first set of sensors can include odometry sensors for sensing wheel rotations of the actuator system. A second set of sensors can sense a motion characteristic of the body. The first set of sensors may be a different type of sensor than the second set of sensors. A controller can estimate carpet drift based at least on the actuation characteristic sensed by the first set of sensors and the motion characteristic sensed by the second set of sensors.

## Claims

### Claim 1

A robotic device comprising:
a camera;
an actuator system configured to move the robotic device across a surface, the actuator system comprising:
a plurality of left wheels interconnected by a left track, and
a plurality of right wheels interconnected by a right track; and
a controller coupled to the camera, wherein the controller is configured to:
extract features from two or more images captured by the camera;
match extracted features from the two or more images;
generate visual observations of motion based on a motion of matching extracted features relative to the two or more images;
estimate drift based at least on the visual observations of motion;
determine, from the estimated drift, whether the surface is carpeted or non-carpeted;
in response to determination that the surface is carpeted, generate a carpet drift vector based at least on the visual observations of motion;
generate commands, using the carpet drift vector, configured to compensate for carpet drift; and
send the generated commands to the actuator system to compensate for the carpet drift.

### Claim 2 (depends on 1)

The robotic device of claim 1, wherein the controller is further configured to generate the visual observations of motion in response to a determination that a difference between the motion of the matching extracted features and a motion predicted by odometry estimates is below a threshold.

### Claim 3 (depends on 1)

The robotic device of claim 1, wherein the controller is further configured to estimate the drift using a Kalman filter to process the visual observations of motion.

### Claim 4 (depends on 1)

The robotic device of claim 1, wherein the visual observations of motion indicate a path angle of the robotic device.

### Claim 5 (depends on 1)

The robotic device of claim 1, wherein the robotic device is configured to match the extracted features from the two or more images using epipolar matching.

### Claim 6 (depends on 1)

The robotic device of claim 1, wherein matching the extracted features from the two or more images comprises a translation direction estimation and a camera rotation estimation.

### Claim 7 (depends on 1)

The robotic device of claim 1, wherein the features are extracted using scale invariant feature transformation.

### Claim 8 (depends on 1)

The robotic device of claim 1, further comprising a vacuum assembly and a brush comprising bristles.

### Claim 9

A-robotic device comprising:
an imaging sensor;
an actuator system configured to move the robotic device across a surface, the actuator system comprising:
a plurality of left wheels interconnected by a left track, and
a plurality of right wheels interconnected by a right track; and
a controller communicatively coupled to the imaging sensor, wherein the controller is configured to:
extract features from two or more images captured by the imaging sensor;
match extracted features from the two or more images;
generate visual observations of motion based on a motion of matching extracted features relative to the two or more images;
estimate drift based at least on the visual observations of motion;
determine, from the estimated drift, whether the surface is carpeted or non-carpeted;
in response to determination that the surface is carpeted, generate a drift vector based at least on the visual observations of motion;
generate commands, using the drift vector, configured to compensate for the estimated drift; and
send the generated commands to the actuator system to compensate for the estimated drift.

### Claim 10 (depends on 9)

The robotic device of claim 9, wherein the controller is further configured to generate the visual observations of motion in response to a determination that a difference between the motion of the matching extracted features and a motion predicted by odometry estimates is below a threshold.

### Claim 11 (depends on 9)

The robotic device of claim 9, wherein the controller is further configured to estimate the drift using a Kalman filter to process the visual observations of motion.

### Claim 12 (depends on 9)

The robotic device of claim 9, wherein the visual observations of motion indicate a path angle of the robotic device.

### Claim 13 (depends on 9)

The robotic device of claim 9, wherein the robotic device is configured to match the extracted features from the two or more images using epipolar matching.

### Claim 14 (depends on 9)

The robotic device of claim 9, wherein matching the extracted features from the two or more images comprises a translation direction estimation and an imaging sensor rotation estimation.

### Claim 15 (depends on 9)

The robotic device of claim 9, further comprising a body, the body comprising arcuate edges.
