IP Library Granted Patent US 12,172,310
Granted Patent B2
US 12,172,310 · App. 17/362,762 · Granted Dec 24, 2024

Systems and methods for picking objects using 3-D geometry and segmentation

Inventors: Guy Michael Stoppi (Victoria, CA); Agastya Kalra (Nepean, CA); Kartik Venkataraman (San Jose, CA); Achuta Kadambi (Los Altos Hills, CA)
Assignee: Intrinsic Innovation LLC
B25J9/1612B25J9/161B25J19/023G06N3/08G06T7/10G06T7/50G06T7/75G06T2207/10028G06T2207/20081G06T2207/20084
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 12,172,310
App. No.
17/362,762
Granted
Dec 24, 2024
Kind
B2
Abstract

A method for controlling a robotic system includes: capturing, by an imaging system, one or more images of a scene; computing, by a processing circuit including a processor and memory, one or more instance segmentation masks based on the one or more images, the one or more instance segmentation masks detecting one or more objects in the scene; computing, by the processing circuit, one or more pickability scores for the one or more objects; selecting, by the processing circuit, an object among the one or more objects based on the one or more pickability scores; computing, by the processing circuit, an object picking plan for the selected object; and outputting, by the processing circuit, the object picking plan to a controller configured to control an end effector of a robotic arm to pick the selected object.

Claims (124)

1. A method for controlling a robotic system, the method comprising:

capturing, by an imaging system, one or more images of a scene;

computing, by a processing circuit comprising a processor and memory, one or more instance segmentation masks based on the one or more images, the one or more instance segmentation masks detecting one or more objects in the scene;

computing one or more depth maps based on the one or more images of the scene;

segmenting the one or more depth maps into one or more point clouds using the one or more instance segmentation masks, the one or more point clouds corresponding to the one or more objects in the scene;

computing, by the processing circuit, one or more pickability scores for the one or more objects, wherein the computing the one or more pickability scores for the one or more objects comprises computing a pickability score for an object of the one or more objects by:

computing a measure of clutter in a neighborhood of the object based on the one or more point clouds,

computing a measure of distance of the object from a current location of the end effector of the robotic arm based on the one or more point clouds, and

computing a measure of how much an object protrudes from other objects of the one or more objects based on the one or more point clouds;

selecting, by the processing circuit, an object among the one or more objects based on the one or more pickability scores;

computing, by the processing circuit, an object picking plan for the selected object; and

outputting, by the processing circuit, the object picking plan to a controller configured to control an end effector of a robotic arm to pick the selected object.

2. The method of claim 1 , wherein the object picking plan comprises a picking position and a direction of approach,

wherein the computing the object picking plan for the selected object comprises computing the picking position based on a visible center of mass of a point cloud corresponding to the selected object.

3. The method of claim 2 , wherein the computing the picking position further comprises computing an estimated center of mass based on adjusting the visible center of mass by a scalar value to be farther from a viewpoint corresponding to a camera used to capture the one or more images of the scene.

4. The method of claim 1 , wherein the computing the one or more pickability scores for the one or more objects comprises supplying the one or more depth maps and the one or more instance segmentation masks to an object pickability neural network.

5. The method of claim 1 , wherein the computing the one or more pickability scores for the one or more objects comprises computing a pickability score for an object of the one or more objects by:

computing a measure of clutter in a neighborhood of the object based on the one or more instance segmentation masks;

computing a measure of distance of the object from a current location of the end effector of the robotic arm based on the one or more instance segmentation masks; and

computing a measure of how much an object protrudes from other objects of the one or more objects based on the one or more instance segmentation masks.

6. The method of claim 5 , wherein the computing the one or more pickability scores for the one or more objects comprising supplying the one or more instance segmentation masks to an object pickability neural network.

7. The method of claim 1 , wherein the object picking plan comprises a picking position and a direction of approach.

8. The method of claim 1 , wherein the one or more images comprise polarization one or more respective raw frames.

9. The method of claim 1 , wherein the one or more instance segmentation masks are computed using a trained convolutional neural network.

10. The method of claim 1 , further comprising computing instance segmentation masks from images captured from a plurality of different viewpoints.

11. The method of claim 10 , wherein the pickability scores for the one or more objects are computed independently for different viewpoints, and

wherein the selecting the object is based on the one or more pickability scores of the object aggregated across different viewpoints.

12. The method of claim 11 , further comprising computing depth maps for the different viewpoints, and

wherein the pickability scores are further computed based on the depth maps.

13. A system comprising:

a processor; and

memory storing instructions that, when executed by the processor, cause the processor to:

receive one or more images of a scene from an imaging system;

compute one or more instance segmentation masks based on the one or more images, the one or more instance segmentation masks detecting one or more objects in the scene;

compute one or more depth maps based on the one or more images of the scene;

segment the one or more depth maps into one or more point clouds using the one or more instance segmentation masks, the one or more point clouds corresponding to the one or more objects in the scene;

compute one or more pickability scores for the one or more objects, wherein the instructions to compute the one or more pickability scores for the one or more objects further comprise instructions that, when executed by the processor, cause the processor to compute a pickability score for an object of the one or more objects by:

computing a measure of clutter in a neighborhood of the object based on the one or more point clouds,

computing a measure of distance of the object from a current location of the end effector of the robotic arm based on the one or more point clouds, and

computing a measure of how much an object protrudes from other objects of the one or more objects based on the one or more point clouds;

select an object among the one or more objects based on the one or more pickability scores;

compute an object picking plan for the selected object; and

output the object picking plan to a controller configured to control an end effector of a robotic arm to pick the selected object.

14. The system of claim 13 , wherein the object picking plan comprises a picking position and a direction of approach,

wherein the instructions to compute the object picking plan for the selected object further comprise instructions that, when executed by the processor, cause the processor to compute the picking position based on a visible center of mass of a point cloud corresponding to the selected object.

15. The system of claim 14 , wherein the instructions to compute the picking position further comprise instructions that, when executed by the processor, cause the processor to compute an estimated center of mass based on adjusting the visible center of mass by a scalar value to be farther from a viewpoint corresponding to a camera used to capture the one or more images of the scene.

16. The system of claim 13 , wherein the instructions to compute the one or more pickability scores for the one or more objects further comprise instructions that, when executed by the processor, cause the processor to supply the one or more depth maps and the one or more instance segmentation masks to an object pickability neural network.

17. The system of claim 13 , wherein the instructions to compute the one or more pickability scores for the one or more objects comprise instructions that, when executed by the processor, cause the processor to compute a pickability score for an object of the one or more objects by:

computing a measure of clutter in a neighborhood of the object based on the one or more instance segmentation masks;

computing a measure of distance of the object from a current location of the end effector of the robotic arm based on the one or more instance segmentation masks; and

computing a measure of how much an object protrudes from other objects of the one or more objects based on the one or more instance segmentation masks.

18. The system of claim 17 , wherein the instructions to compute the one or more pickability scores for the one or more objects further comprise instructions that, when executed by the processor, cause the processor to supply the one or more instance segmentation masks to an object pickability neural network.

19. The system of claim 13 , wherein the object picking plan comprises a picking position and a direction of approach.

20. The system of claim 13 , wherein the one or more images comprise one or more respective polarization raw frames.

21. The system of claim 13 , wherein the one or more instance segmentation masks are computed using a trained convolutional neural network.

22. The system of claim 13 , wherein the memory further stores instructions that, when executed by the processor, cause the processor to compute instance segmentation masks from images captured from a plurality of different viewpoints.

23. The system of claim 22 , wherein the pickability scores for the one or more objects are computed independently for different viewpoints, and

wherein the memory further stores instructions that, when executed by the processor, cause the processor to select the object based on the one or more pickability scores of the object aggregated across different viewpoints.

24. The system of claim 22 , wherein the memory further stores instructions that, when executed by the processor, cause the processor to compute depth maps for the different viewpoints, and

wherein the pickability scores are further computed based on the depth maps.

25. A method for controlling a robotic system, the method comprising:

capturing, by an imaging system, one or more images of a scene;

computing, by a processing circuit comprising a processor and memory, one or more instance segmentation masks based on the one or more images, the one or more instance segmentation masks detecting one or more objects in the scene;

computing one or more depth maps based on the one or more images of the scene;

segmenting the one or more depth maps into one or more point clouds using the one or more instance segmentation masks, the one or more point clouds corresponding to the one or more objects in the scene;

computing, by the processing circuit, one or more pickability scores for the one or more objects;

selecting, by the processing circuit, an object among the one or more objects based on the one or more pickability scores;

computing, by the processing circuit, an object picking plan for the selected object,

wherein the object picking plan comprises a picking position and a direction of approach,

wherein the computing the object picking plan for the selected object comprises computing the picking position based on a visible center of mass of a point cloud corresponding to the selected object; and

outputting, by the processing circuit, the object picking plan to a controller configured to control an end effector of a robotic arm to pick the selected object.

26. A method for controlling a robotic system, the method comprising:

capturing, by an imaging system, one or more images of a scene;

computing, by a processing circuit comprising a processor and memory, one or more instance segmentation masks based on the one or more images, the one or more instance segmentation masks detecting one or more objects in the scene;

computing, by the processing circuit, one or more pickability scores for the one or more objects,

wherein the computing the one or more pickability scores for the one or more objects comprises computing a pickability score for an object of the one or more objects by:

computing a measure of clutter in a neighborhood of the object based on the one or more instance segmentation masks,

computing a measure of distance of the object from a current location of the end effector of the robotic arm based on the one or more instance segmentation masks, and

computing a measure of how much an object protrudes from other objects of the one or more objects based on the one or more instance segmentation masks;

selecting, by the processing circuit, an object among the one or more objects based on the one or more pickability scores;

computing, by the processing circuit, an object picking plan for the selected object; and

outputting, by the processing circuit, the object picking plan to a controller configured to control an end effector of a robotic arm to pick the selected object.

27. A method for controlling a robotic system, the method comprising:

capturing, by an imaging system, one or more images of a scene from a plurality of different viewpoints;

computing, by a processing circuit comprising a processor and memory, one or more instance segmentation masks based on the one or more images, the one or more instance segmentation masks detecting one or more objects in the scene;

computing, by the processing circuit, one or more pickability scores for the one or more objects, wherein the pickability scores for the one or more objects are computed independently for different viewpoints;

selecting, by the processing circuit, an object among the one or more objects based on the one or more pickability scores of the object aggregated across different viewpoints;

computing, by the processing circuit, an object picking plan for the selected object; and

outputting, by the processing circuit, the object picking plan to a controller configured to control an end effector of a robotic arm to pick the selected object.

28. A system comprising:

a processor; and

memory storing instructions that, when executed by the processor, cause the processor to:

receive one or more images of a scene from an imaging system;

compute one or more instance segmentation masks based on the one or more images, the one or more instance segmentation masks detecting one or more objects in the scene;

compute one or more depth maps based on the one or more images of the scene;

segment the one or more depth maps into one or more point clouds using the one or more instance segmentation masks, the one or more point clouds corresponding to the one or more objects in the scene;

compute one or more pickability scores for the one or more objects;

select an object among the one or more objects based on the one or more pickability scores;

compute an object picking plan for the selected object,

wherein the object picking plan comprises a picking position and a direction of approach,

wherein the instructions to compute the object picking plan for the selected object further comprise instructions that, when executed by the processor, cause the processor to compute the picking position based on a visible center of mass of a point cloud corresponding to the selected object; and

output the object picking plan to a controller configured to control an end effector of a robotic arm to pick the selected object.

29. A system comprising:

a processor; and

memory storing instructions that, when executed by the processor, cause the processor to:

receive one or more images of a scene from an imaging system;

compute one or more instance segmentation masks based on the one or more images, the one or more instance segmentation masks detecting one or more objects in the scene;

compute one or more pickability scores for the one or more objects,

wherein the instructions to compute the one or more pickability scores for the one or more objects comprise instructions that, when executed by the processor, cause the processor to compute a pickability score for an object of the one or more objects by:

computing a measure of clutter in a neighborhood of the object based on the one or more instance segmentation masks,

computing a measure of distance of the object from a current location of the end effector of the robotic arm based on the one or more instance segmentation masks, and

computing a measure of how much an object protrudes from other objects of the one or more objects based on the one or more instance segmentation masks;

select an object among the one or more objects based on the one or more pickability scores;

compute an object picking plan for the selected object; and

output the object picking plan to a controller configured to control an end effector of a robotic arm to pick the selected object.

30. A system comprising:

a processor; and

memory storing instructions that, when executed by the processor, cause the processor to:

receive one or more images of a scene from a plurality of different viewpoints, from an imaging system;

compute one or more instance segmentation masks based on the one or more images, the one or more instance segmentation masks detecting one or more objects in the scene;

compute one or more pickability scores for the one or more objects, wherein the pickability scores for the one or more objects are computed independently for different viewpoints;

select an object among the one or more objects based on the one or more pickability scores of the object aggregated across different viewpoints;

compute an object picking plan for the selected object; and

output the object picking plan to a controller configured to control an end effector of a robotic arm to pick the selected object.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE RECEIVING PARTY NAME PREVIOUSLY RECORDED AT REEL: 060389 FRAME: 0682. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 7, 2022
From: VICARIOUS FPC, INC.; BOSTON POLARIMETRICS, INC.
To: INTRINSIC INNOVATION LLC
Reel/Frame 060614/0104 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2022
From: VICARIOUS FPC, INC; BOSTON POLARIMETRICS, INC.
To: LLC, INTRINSIC I
Reel/Frame 060389/0682 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2021
From: STOPPI, GUY MICHAEL; KALRA, AGASTYA; VENKATARAMAN, KARTIK; KADAMBI, ACHUTA
To: BOSTON POLARIMETRICS, INC.
Reel/Frame 056710/0462 →
Continuity (1)
Related Publication 20220410381A1 · Dec 29, 2022
Cited By (2)
US 12,678,966 US 12,711,807