IP Library Granted Patent US 9,632,504
Granted Patent B1
US 9,632,504 · App. 14/701,396 · Granted Apr 25, 2017

Robotic navigation based on building surface contours

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,632,504
App. No.
14/701,396
Granted
Apr 25, 2017
Kind
B1
Abstract

An example method includes determining a depth map of at least one static surface of a building, where the depth map includes a plurality of surface contours. The method further includes receiving sensor data from one or more sensors on a robotic device that is located in the building. The method also includes determining a plurality of respective distances between the robotic device and a plurality of respective detected points on the at least one static surface of the building. The method additionally includes identifying at least one surface contour that includes the plurality of respective detected points. The method further includes determining a position of the robotic device in the building that aligns the at least one identified surface contour with at least one corresponding surface contour in the depth map.

Claims (66)

1. A method, comprising:

determining a depth map of at least one static surface of a building;

determining a plurality of surface contours in the depth map, wherein each of the plurality of surface contours comprises a group of connected points showing changing surface depth along the at least one static surface;

receiving sensor data from one or more sensors on a robotic device that is located in the building, wherein the received sensor data is indicative of the at least one static surface of the building;

determining, based on the received sensor data, a plurality of respective distances between the robotic device and a plurality of respective detected points on the at least one static surface of the building;

identifying at least one surface contour that includes the plurality of respective detected points on the at least one static surface of the building;

determining, for the at least one identified surface contour, at least one corresonding surface contour from the plurality of surface contours in the depth map such that the at least one identified surface contour and the at least one corresponding surface contour have matching changes in surface depth; and

determining, based on the plurality of respective distances, a position of the robotic device in the building that aligns the at least one identified surface contour with the at least one corresponding surface contour in the depth map of the at least one static surface of the building.

2. The method of claim 1 , wherein the at least one static surface of the building comprises a ceiling of the building that is located above a floor of the building on which the robotic device is configured to travel.

3. The method of claim 1 , wherein the one or more sensors on the robotic device are oriented on the robotic device in one or more respective directions that provide one or more unobstructed views of the at least one static surface of the building while the robotic device is operating within the building.

4. The method of claim 1 , wherein the one or more sensors on the robotic device are fixed in orientation in one or more respective directions to provide one or more respective views of the at least one static surface, and wherein the method further comprises:

receiving the sensor data from the one or more sensors at a plurality of consecutive times while the robotic device is moving within the building, wherein the plurality of respective detected points correspond to the plurality of consecutive times; and

determining the plurality of respective distances between the robotic device and the plurality of respective detected points at the corresponding plurality of consecutive times.

5. The method of claim 1 , wherein determining the depth map of the at least one static surface of the building comprises:

causing at least one mapping robot to navigate through the building;

receiving sensor data from at least one depth camera on the at least one mapping robot that is indicative of depth of the at least one static surface of the building; and

determining the depth map based on the received sensor data from the at least one depth camera.

6. The method of claim 1 , wherein the one or more sensors on the robotic device comprise one or more laser rangefinders oriented in one or more respective directions to provide one or more respective views of the at least one static surface of the building.

7. The method of claim 1 , further comprising:

determining an estimated location of the robotic device in the building as the robotic device is moving within the building based on sensor data from at least one distance sensor on the robotic device;

determining at least one search area on the depth map to search for the at least one surface contour that includes the plurality of respective detected points based on the estimated location of the robotic device in the building; and

identifying the at least one surface contour by searching the at least one determined search area on the depth map.

8. The method of claim 7 , wherein the at least one distance sensor on the robotic device comprises at least one wheel speed sensor that is configured to detect a speed of at least one wheel on the robotic device as the robotic device is moving within the building.

9. The method of claim 1 , further comprising:

determining an orientation of the robotic device relative to the at least one static surface of the building based on sensor data from at least one inertial measurement unit on the robotic device; and

using the determined orientation to determine the plurality of respective distances between the robotic device and the plurality of respective detected points on the at least one static surface of the building.

10. The method of claim 1 , further comprising:

determining that a particular sensor of the one or more sensors on the robotic device is obstructed by one or more obstructions between the robotic device and the at least one static surface; and

responsively causing a change in orientation of the particular sensor.

11. The method of claim 1 , further comprising:

providing navigation instructions for the robotic device to navigate within the building based at least in part on determined position of the robotic device in the building.

12. A robotic device, comprising:

one or more sensors; and

a control system configured to:

determine a depth map of at least one static surface of a building in which the robotic device is located;

determine a plurality of surface contours in the depth map, wherein each of the plurality of surface contours comprises a group of connected points showing changing surface depth along the at least one static surface;

receive sensor data from the one or more sensors, wherein the received sensor data is indicative of the at least one static surface of the building;

determine, based on the received sensor data, a plurality of respective distances between the robotic device and a plurality of respective detected points on the at least one static surface of the building;

identify at least one surface contour that includes the plurality of respective detected points on the at least one static surface of the building;

determine, for the at least one identified surface contour, at least one corresponding surface contour from the plurality of surface contours in the depth map such that the at least one identified surface contour and the at least one corresponding surface contour have matching changes in surface depth; and

determine, based on the plurality of respective distances, a position of the robotic device in the building that aligns the at least one identified surface contour with the at least one corresponding surface contour in the depth map of the at least one static surface of the building.

13. The robotic device of claim 12 , wherein the at least one static surface of the building comprises a ceiling of the building that is located above a floor of the building on which the robotic device is configured to travel.

14. The robotic device of claim 12 , wherein the one or more sensors on the robotic device are oriented on the robotic device in one or more respective directions that provide one or more unobstructed views of the at least one static surface of the building while the robotic device is operating within the building.

15. The robotic device of claim 12 , wherein the one or more sensors on the robotic device are fixed in orientation in one or more respective directions to provide one or more respective views of the at least one static surface, and wherein the control system is further configured to:

cause the robotic device to travel within the building;

receive the sensor data from the one or more sensors at a plurality of consecutive times while the robotic device is travelling within the building, wherein the plurality of respective detected points correspond to the plurality of consecutive times; and

determine the plurality of respective distances between the robotic device and the plurality of respective detected points at the corresponding plurality of consecutive times.

16. The robotic device of claim 12 , wherein the one or more sensors on the robotic device comprise one or more laser rangefinders oriented in one or more respective directions to provide one or more respective views of the at least one static surface of the building.

17. The robotic device of claim 12 , further comprising at least one distance sensor, wherein the control system is further configured to:

determine an estimated location of the robotic device in the building as the robotic device is moving within the building based on sensor data from the at least one distance sensor;

determine at least one search area on the depth map to search for the at least one surface contour that includes the plurality of respective detected points based on the estimated location of the robotic device in the building; and

identify the at least one surface contour by searching the at least one determined search area on the depth map.

18. The robotic device of claim 12 , wherein the control system is further configured to determine the position of the robotic device in the building based on the plurality of respective distances by:

determining an angle between the robotic device and a detected point of the plurality of respective detected points based on an orientation of a sensor on the robot that detected the detected point; and

determining a lateral distance between the robotic device and the detected point in the building based on the angle and the distance between the robot and the detected point.

19. The robotic device of claim 12 , further comprising at least one inertial measurement unit, wherein the control system is further configured to:

determine an orientation of the robotic device relative to the at least one static surface of the building based on sensor data from the at least one inertial measurement unit on the robotic device; and

use the determined orientation to determine the plurality of respective distances between the robotic device and the plurality of respective detected points on the at least one static surface of the building.

20. A non-transitory computer readable medium having stored therein instructions, that when executed by a control system of a robotic device, cause the control system to perform functions comprising:

determining a depth map of at least one static surface of a building;

determining a plurality of surface contours in the depth map, wherein each of the plurality of surface contours comprises a group of connected points showing changing surface depth along the at least one static surface;

receiving sensor data from one or more sensors on a robotic device that is located in the building, wherein the received sensor data is indicative of the at least one static surface of the building;

determining, based on the received sensor data, a plurality of respective distances between the robotic device and a plurality of respective detected points on the at least one static surface of the building;

identifying at least one surface contour that includes the plurality of respective detected points on the at least one static surface of the building;

determining, for the at least one identified surface contour, at least one corresonding surface contour from the plurality of surface contours in the depth map such that the at least one identified surface contour and the at least one corresonding surface contour have matching changes in surface depth; and

determining, based on the plurality of respective distances, a position of the robotic device in the building that aligns the at least one identified surface contour with the at least one corresponding surface contour in the depth map of the at least one static surface of the building.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2025
From: GOOGLE LLC
To: GDM HOLDING LLC
Reel/Frame 071109/0342 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE REMOVAL OF THE INCORRECTLY RECORDED APPLICATION NUMBERS 14/149802 AND 15/419313 PREVIOUSLY RECORDED AT REEL: 44144 FRAME: 1. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Mar 4, 2024
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 068092/0502 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2023
From: X DEVELOPMENT LLC
To: GOOGLE LLC
Reel/Frame 064658/0001 →
CHANGE OF NAME Recorded Oct 6, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044144/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2016
From: GOOGLE INC.
To: X DEVELOPMENT LLC
Reel/Frame 039900/0610 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2015
From: WATTS, KEVIN WILLIAM
To: GOOGLE INC.
Reel/Frame 035541/0847 →