IP Library Granted Patent US 10,016,892
Granted Patent B2
US 10,016,892 · App. 14/807,434 · Granted Jul 10, 2018

System and method for determining tool offsets

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 10,016,892
App. No.
14/807,434
Granted
Jul 10, 2018
Kind
B2
Abstract

Systems and methods are disclosed for determining tool offset data for a tool attached to a robot at an attachment point. In an embodiment, a method includes controlling the robot to contact a reference object with the tool. The reference object is a rigid object with a known location. A force feedback sensor of the robot may indicates when the tool has contacted the reference object. Once contact is made, data indicating robot position during tool contact is received. Additionally, the robot may temporarily stops movement of the tool to prevent damage to the tool or the reference object. Next, tool offset data s determined based on the position of the reference object relative to the robot and the received robot position data. The tool offset data describes the distance between at least one point on the tool and the attachment point.

Claims (51)

1. A method comprising:

based on a position of a reference object on a robot, causing the robot to move a tool toward the reference object on the robot, wherein the tool is connected to the robot at an attachment point;

determining that the tool has contacted the reference object on the robot during a first contact event;

receiving robot position data indicative of a position of the robot when the tool contacts the reference object on the robot during the first contact event;

determining tool offset data for the tool based on at least the position of the reference object on the robot and the robot position data, wherein the tool offset data for the tool describes a distance between the attachment point and at least one point on the tool; and

subsequently causing the robot to operate the tool based on the determined tool offset data.

2. The method of claim 1 , wherein the reference object is a plank having a first flat surface at a predetermined orientation and a predetermined position, wherein the tool contacts the first flat surface of the plank during the first contact event.

3. The method of claim 1 , wherein the robot comprises a robot arm on top of a base, and wherein the reference object on the robot is attached to the base.

4. The method of claim 1 , wherein the reference object has a first flat surface and a second flat surface, wherein the first flat surface is located at an angle to the second flat surface.

5. The method of claim 1 , wherein the tool offset data includes a first distance in a first direction, a second distance in a second direction perpendicular to the first direction, and a third distance in a third direction perpendicular to both the first direction and the second direction.

6. The method of claim 1 , further comprising:

controlling the robot such that the tool contacts the reference object during a second contact event;

receiving robot position data indicative of a position of the robot when the tool contacts the reference object during the second contact event; and

determining tool offset data for the tool based on at least the position of the reference object on the robot, the robot position data received during the first contact event, and the robot position data received during the second contact event.

7. The method of claim 1 , further comprising:

iteratively causing a plurality of contact events corresponding to a plurality of different robot positions by causing the tool to contact the reference object;

receiving robot position data indicative of the plurality of different robot positions corresponding to the plurality of contact events; and

determining a three-dimensional model of the tool based on the received robot position data.

8. The method of claim 1 further comprising:

receiving force sensing data from a force sensor on the robot;

based on the force sensing data, determining that the robot has contacted the reference object with the tool; and

in response to determining that the robot has contacted the reference object with the tool, causing the robot to stop moving the tool.

9. The method of claim 1 further comprising:

determining a shape of the tool based on at least the tool offset data for at least one point on the tool; and

determining a tool type for the tool based on the determined tool shape.

10. The method of claim 1 , wherein the robot position data is determined based at least on encoded joint angles of the robot.

11. 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:

based on a position of a reference object on a robot, causing the robot to move a tool toward the reference object on the robot, wherein the tool is connected to the robot at an attachment point;

determining that the tool has contacted the reference object on the robot during a first contact event;

receiving robot position data indicative of a position of the robot when the tool contacts the reference object on the robot during the first contact event;

determining tool offset data for the tool based on at least the position of the reference object on the robot and the robot position data, wherein the tool offset data for the tool describes a distance between the attachment point and at least one point on the tool; and

subsequently causing the robot to operate the tool based on the determined tool offset data.

12. The non-transitory computer-readable medium of claim 11 , wherein the reference object is a plank having a first flat surface at a predetermined orientation and a predetermined position, wherein the tool contacts the first flat surface of the plank during the first contact event.

13. The non-transitory computer-readable medium of claim 11 , wherein the robot comprises a robot arm on top of a base, and wherein the reference object on the robot is attached to the base.

14. The non-transitory computer-readable medium of claim 11 , wherein the reference object has a first flat surface and a second flat surface, wherein the first flat surface is located at an angle to the second flat surface.

15. The non-transitory computer-readable medium of claim 11 , wherein the robot position data is determined based at least on encoded joint angles of the robot.

16. A system comprising:

a processor; and

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

based on a position of a reference object on a robot, causing the robot to move a tool toward the reference object on the robot, wherein the tool is connected to the robot at an attachment point;

determining that the tool has contacted the reference object on the robot during a first contact event;

receiving robot position data indicative of a position of the robot when the tool contacts the reference object on the robot during the first contact event;

determining tool offset data for the tool based on at least the position of the reference object on the robot and the robot position data, wherein the tool offset data for the tool describes a distance between the attachment point and at least one point on the tool; and

subsequently causing the robot to operate the tool based on the determined tool offset data.

17. The system of claim 16 , wherein the reference object is a plank having a first flat surface at a predetermined orientation and a predetermined position, wherein the tool contacts the first flat surface of the plank during the first contact event.

18. The system of claim 16 , wherein the robot comprises a robot arm on top of a base, and wherein the reference object on the robot is attached to the base.

19. The system of claim 16 , wherein the memory stores instructions that when executed by the processor further cause the system perform functions comprising:

determining that a status of a contact electrical circuit of the robot has changed;

based on the determined status change, determining that the robot has contacted the reference object with the tool; and

in response to determining that the robot has contacted the reference object with the tool, causing the robot to stop moving the tool.

20. The system of claim 16 , wherein the robot position data is determined based at least on encoded joint angles of the robot.

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 036166/0960 →