IP Library Granted Patent US 9,815,198
Granted Patent B2
US 9,815,198 · App. 14/807,464 · Granted Nov 14, 2017

System and method for determining a work offset

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,815,198
App. No.
14/807,464
Granted
Nov 14, 2017
Kind
B2
Abstract

Systems and methods are disclosed for determining work offset data for a robot in a work environment. In an embodiment, a robot operating in a work environment receives an indication to determine a work offset. The work offset describes the location and angular orientation of a working plane of the work environment relative to a base plane of the robot. In response to the indication, the robot identifies the working plane. The robot is controlled to contact one or more points of the working plane. The robot determines respective point locations of the contacted points relative to the base plane based on the respective positions of the robot at respective times of contact. The robot determines the location and angular orientation of the working plane relative to the base plane based on the determined respective point locations of the contacted points.

Claims (55)

1. A method comprising:

receiving an indication to determine a work offset for a robot operating in a work environment, wherein the work offset describes a location and an angular orientation of a working plane of the work environment relative to a base plane of the robot;

in response to the indication, identifying the working plane within the work environment;

providing instructions by a processor to cause an arm of the robot to contact one or more points of the working plane;

determining one or more respective positions of the robot when the arm of the robot contacts the one or more points of the working plane;

based on the one or more respective positions of the robot, determining respective point locations of the one or more contacted points of the working plane relative to the base plane; and

determining the location and angular orientation of the working plane relative to the base plane based on the determined respective point locations of the one or more contacted points.

2. The method of claim 1 , wherein the working plane angular orientation measures an angular displacement of the working plane relative to the base plane.

3. The method of claim 2 , wherein the working plane location measures a shift distance between a point on the base plane and a corresponding point on the working plane along a vertical axis perpendicular to the robot base plane.

4. The method of claim 1 , wherein the arm of the robot is controlled to cause the arm of the robot to contact three separate, non-collinear points on the working plane.

5. The method of claim 1 , wherein the working plane is a ground plane of the work environment.

6. The method of claim 1 further comprising:

after determining the work offset a first time, detecting a change in the base plane; and

in response to the detected base plane change, determining the work offset a second time.

7. The method of claim 1 further comprising:

after determining the work offset a first time, detecting a change in the working plane; and

in response to the detected working plane change, determining the work offset a second time.

8. The method of claim 1 , wherein the indication to determine the work offset is generated in response to detection of an initial startup of the robot.

9. The method of claim 1 , wherein the indication to determine the work offset is generated in response to detection of an error associated with robot operation.

10. The method of claim 1 , wherein identifying the working plane within the work environment further comprises:

identifying the working plane within the work environment based on image data from a camera, wherein the image data displays at least a portion of the working plane.

11. The method of claim 1 , wherein the working plane angular orientation measures angular displacement of the working plane relative to a first axis of the base plane and angular displacement of the working plane relative to a second axis of the base plane, wherein the second axis is perpendicular to the first axis.

12. The method of claim 1 , wherein the respective positions of the robot are determined based on encoded joint angles.

13. The method of claim 1 , wherein the working plane is a surface, wherein one or more objects for the robot to manipulate are located on the working plane surface.

14. The method of claim 1 further comprising:

in response to identifying the working plane, determining a path toward the plane;

moving along the determined path towards the working plane;

receiving force sensing data from a force sensor on the robot when the robot contacts any of the one or more points of the working plane;

based on the force sensing data, determining that the robot has contacted the working plane at one of the one or more points; and

in response to determining that the robot has contacted the working plane, causing the robot to stop to determine a respective position of the robot at a respective time of contact.

15. A non-transitory computer-readable medium storing instructions that are executable by one or more computing devices, wherein executing the instructions causes the one or more computing devices to perform functions comprising:

receiving an indication to determine a work offset for a robot operating in a work environment, wherein the work offset describes a location and an angular orientation of a working plane of the work environment relative to a base plane of the robot;

in response to the indication, identifying the working plane within the work environment;

controlling an arm of the robot to cause the arm of the robot to contact one or more points of the working plane;

determining one or more respective positions of the robot when the arm of the robot contacts the one or more points of the working plane;

based on the one or more respective positions of the robot, determining respective point locations of the one or more contacted points of the working plane relative to the base plane; and

determining the location and angular orientation of the working plane relative to the base plane based on the determined respective point locations of the one or more contacted points.

16. The non-transitory computer-readable medium of claim 15 , wherein executing the instructions further causes the one or more computing devices to perform functions comprising:

after determining the work offset a first time, detecting a change in the base plane; and

in response to the detected base plane change, determining the work offset a second time.

17. The non-transitory computer-readable medium of claim 15 , wherein executing the instructions further causes the one or more computing devices to perform functions comprising:

after determining the work offset a first time, detecting a change in the working plane; and

in response to the detected working plane change, determining the work offset a second time.

18. A system comprising:

a processor; and

a memory storing instructions that when executed by the processor cause the system to perform functions comprising:

receiving an indication to determine a work offset for a robot operating in a work environment, wherein the work offset describes a location and an angular orientation of a working plane of the work environment relative to a base plane of the robot;

in response to the indication, identifying the working plane within the work environment;

controlling an arm of the robot to cause the arm of the robot to contact one or more points of the working plane;

determining one or more respective positions of the robot when the arm of the robot contacts the one or more points of the working plane;

based on the one or more respective positions of the robot, determining respective point locations of the one or more contacted points of the working plane relative to the base plane; and

determining the location and angular orientation of the working plane relative to the base plane based on the determined respective point locations of the one or more contacted points.

19. The system of claim 18 , wherein the robot is controlled to contact at least three points on the working plane.

20. The system of claim 18 , wherein identifying the working plane within the work environment further comprises:

identifying the working plane within the work environment based on image data from a camera, wherein the image data displays at least a portion of the working plane.

Assignments (4)
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 →
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 Jul 23, 2015
From: DAVIS, BENJAMIN M.
To: GOOGLE INC.
Reel/Frame 036167/0117 →