IP Library › Granted Patent US 11,192,248
Granted Patent B2
US 11,192,248 · App. 16/508,530 · Granted Dec 7, 2021

Predictive robotic obstacle detection

Inventors: Randolph Charles Voorhies (Sherman Oaks, CA); Brandon Pennington (Encino, CA); William Shane Simpson Grant (Van Nuys, CA); Joseph Traverso (Simi Valley, CA); Lior Elazary (Agoura Hills, CA); Daniel Frank Parks, II (Los Angeles, CA)
Assignee: inVia Robotics, Inc.
B25J9/1666G05D1/0214B25J5/007
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 11,192,248
App. No.
16/508,530
Granted
Dec 7, 2021
Kind
B2
Abstract

Provided are systems and methods by which robots predictively detect objects that may obstruct robotic tasks prior to the robots performing those tasks. For instance, a robot may receive a task, and may obtain dimensions of a task object based on a first identifier obtained with the task or with a sensor of the robot. The robot may determine a first boundary for moving the task object based on the task object dimensions and an added buffer of space that accounts for imprecise robotic operation. The robot may detect a second identifier of a neighboring object, and may obtain dimensions of the neighboring object using the second identifier. The robot may compute a second boundary of the neighboring object based on the dimensions of the neighboring object and a position of the second identifier, and may detect an obstruction based on the second boundary crossing into the first boundary.

Claims (73)

1. A method comprising:

receiving a task at a robot, wherein the task programs the robot in performing a placement or retrieval of a task object to or from a first location;

obtaining dimensions of the task object based on a first identifier obtained with the task or with at least one sensor of the robot;

determining a first boundary in three-dimensional (“3D”) space with which to place or retrieve the task object to or from the first location with the robot, wherein the first boundary is defined based on the dimensions of the task object and an added buffer of space, wherein the first boundary is centered on the first location or an offset position from the first location;

detecting a second identifier on a surface of a neighboring object at a different second location directly adjacent to the first location;

obtaining dimensions of the neighboring object using the second identifier;

defining a second boundary in the 3D space around a position of the second identifier on the surface of the neighboring object with dimensions of the second boundary equaling the dimensions of the neighboring object; and

stopping execution of the placement or retrieval of the task object based on the second boundary defined for the neighboring object overlapping in the 3D space with the first boundary determined for placing or retrieving the task object.

2. The method of claim 1 further comprising:

moving the robot to a destination location of the task by activating one or more activators and sensors of the robot; and

halting movement of the robot in response to a third identifier at the destination location matching to an identifier of the task.

3. The method of claim 2 further comprising:

detecting an expected location of the task object based on the third identifier; and

repositioning the robot to an actual location of the task object based on a position of the first identifier being offset from a position of the third identifier.

4. The method of claim 1 further comprising:

completing execution of the task by activating one or more actuators of the robot in response to the second boundary being outside the first boundary, the one or more actuators retrieving or placing the task object.

5. The method of claim 4 , wherein stopping the execution comprises:

moving the neighboring object with the robot until the second boundary is outside the first boundary; and

commencing execution of the task by the robot after completing said moving.

6. The method of claim 4 , wherein stopping the execution comprises:

providing a notification that identifies obstruction of the task.

7. The method of claim 1 further comprising:

computing a first set of coordinates for the first boundary based on a current position of the robot and a distance of the robot to the first identifier; and

computing a second set of coordinates for the second boundary based on the current position of the robot and a distance of the robot to the second identifier.

8. The method of claim 1 further comprising:

generating a first set of coordinates for the first boundary based on a first size and a first orientation of the first identifier in a sensor of the robot; and

generating a second set of coordinates for the second boundary based on a second size and a second orientation of the second identifier in the sensor of the robot.

9. The method of claim 1 ,

wherein determining the first boundary comprises extending the first boundary around a position of the first identifier based on the dimensions of the task object.

10. The method of claim 1 ,

wherein the first identifier is a fiducial or visual feature that uniquely identifies the task object or the first location for the task object; and

wherein the second identifier is a different fiducial or visual feature that uniquely identifies the neighboring object.

11. The method of claim 1 further comprising:

tracking the previous operation of the robot based on prior execution of a similar task by the robot and deviation between an expected result and an end result of the similar task.

12. A robot comprising:

one or more sensors;

one or more actuators;

a non-transitory computer-readable medium storing a set of processor-executable instructions; and

one or more processors configured to execute the set of processor-executable instructions, wherein executing the set of processor-executable instructions causes the one or more processors to:

receive a task that is assigned to the robot for execution, wherein the task programs the robot in performing a placement or retrieval of a task object to or from a first location;

obtain dimensions of the task object based on a first identifier obtained with the task or with the one or more sensors;

determine a first boundary in three-dimensional (“3D”) space with which to place or retrieve the task object to or from the first location with the one or more actuators, wherein the first boundary is defined based on the dimensions of the task object and an added buffer of space, wherein the first boundary is centered on the first location or an offset position from the first location;

detect a second identifier on a surface of a neighboring object at a different second location, that is directly adjacent to the first location, using the one or more sensors;

obtain dimensions of the neighboring object using the second identifier;

define a second boundary in the 3D space around a position of the second identifier on the surface of the neighboring object with dimensions of the second boundary equaling the dimensions of the neighboring object; and

stop execution of the placement or retrieval of the task object based on the second boundary defined for the neighboring object overlapping in the 3D space with the first boundary determined for placing or retrieving the task object.

13. The robot of claim 12 , wherein the processor-executable instructions further include processor-executable instructions to:

complete execution of the task by activating the one or more actuators in response to the second boundary being outside the first boundary, the one or more actuators retrieving or placing the task object.

14. The robot of claim 13 , wherein the processor-executable instructions further include processor-executable instructions to:

move the neighboring object using the one or more actuators until the second boundary is outside the first boundary; and

commence execution of the task after completing said moving.

15. The robot of claim 13 , wherein the processor-executable instructions further include processor-executable instructions to:

provide a notification that identifies obstruction of the task.

16. The robot of claim 12 , wherein the processor-executable instructions further include processor-executable instructions to:

compute a first set of coordinates for the first boundary based on a current position of the robot and a distance of the robot to the first identifier; and

compute a second set of coordinates for the second boundary based on the current position of the robot and a distance of the robot to the second identifier.

17. The robot of claim 12 , wherein the processor-executable instructions further include processor-executable instructions to:

generate a first set of coordinates for the first boundary based on a first size and a first orientation of the first identifier in a sensor of the one or more sensors; and

generate a second set of coordinates for the second boundary based on a second size and a second orientation of the second identifier in the sensor.

18. A non-transitory computer-readable medium, storing a set of processor-executable instructions, which, when executed by one or more processors, cause the one or more processors to:

receive a task that programs a robot in performing a placement or retrieval of a task object to or from a first location;

obtain dimensions of the task object based on a first identifier obtained with the task or with at least one sensor of a robot;

determine a first boundary in three-dimensional (“3D”) space with which to place or retrieve the task object to or from the first location with the robot, wherein the first boundary is defined based on the dimensions of the task object and an added buffer of space, wherein the first boundary is centered on the first location or an offset position from the first location;

detect a second identifier on a surface of a neighboring object at a different second location directly adjacent to the first location;

obtain dimensions of the neighboring object using the second identifier;

define a second boundary in the 3D space around a position of the second identifier on the surface of the neighboring object with dimensions of the second boundary equaling the dimensions of the neighboring object; and

stop execution of the placement or retrieval of the task object based on the second boundary defined for the neighboring object overlapping in the 3D space with the first boundary determined for placing or retrieving the task object.

19. The method of claim 1 further comprising:

centering the first boundary on the first location based on the first location comprising empty space and the robot transferring the task object to the first location; and

centering the first boundary on the offset position from the first location based on the task object being stored at the first location and having shifted away from the first location.

20. The method of claim 1 further comprising:

measuring imprecisions during operation of the robot prior to receiving the task; and

sizing the added buffer based on the imprecisions measured during operation of the robot prior to receiving the task.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2019
From: VOORHIES, RANDOLPH CHARLES; PENNINGTON, BRANDON; GRANT, WILLIAM SHANE SIMPSON; TRAVERSO, JOSEPH; ELAZARY, LIOR; PARKS, DANIEL FRANK, II
To: INVIA ROBOTICS, INC.
Reel/Frame 049724/0448 →
Continuity (1)
Related Publication 20210008721A1 · Jan 14, 2021