IP Library Granted Patent US 12,236,340
Granted Patent B2
US 12,236,340 · App. 17/020,565 · Granted Feb 25, 2025

Computer-automated robot grasp depth estimation

Inventors: Ben Goodrich (San Francisco, CA); Alex Kuefler (London, GB); William D. Richards (San Francisco, CA); Christopher Correa (San Francisco, CA); Rishi Sharma (San Francisco, CA); Sulabh Kumra (San Francisco, CA)
Assignee: Osaro
G06N3/08G05B19/4155G05B2219/39271G05B2219/40269
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,236,340
App. No.
17/020,565
Granted
Feb 25, 2025
Kind
B2
Abstract

A computer system trains a neural network to predict, for each pixel in an input image, the position that a robot's end effector would reach if a grasp (“poke”) were attempted at that position. Training data consists of images and end effector positions recorded while a robot attempts grasps in a pick-and-place environment. For an automated grasping policy, the approach is self-supervised, as end effector position labels may be recovered through forward kinematics, without human annotation. Although gathering such physical interaction data is expensive, it is necessary for training and routine operation of state of the art manipulation systems. Therefore, the system comes “for free” while collecting data for other tasks (e.g., grasping, pushing, placing). The system achieves significantly lower root mean squared error than traditional structured light sensors and other self-supervised deep learning methods on difficult, industry-scale jumbled bin datasets.

Claims (80)

1. A method performed by at least one computer processor executing computer program instructions stored on at least one non-transitory computer-readable medium, the method comprising:

(A) training a neural network, the training comprising:

(A)(1) receiving, as training data:

a plurality of training images I, each representing a three-dimensional scene at a corresponding time when a robot's end effector is at a corresponding stopping point in the three-dimensional scene; and

a plurality of poses of an end effector of a robot, each representing a corresponding pose of the robot's end effector at a corresponding one of the stopping points; and

(A)(2) training the neural network using the plurality of training images I, and the plurality of poses as the training data, to produce a trained neural network;

(B) applying the trained neural network to predict, for each of a plurality of pixels P in an input image, (1) a depth that the robot's end effector would reach in a three-dimensional environment if the robot's end effector moved into the three-dimensional environment to target a projection of the pixel P onto the three-dimensional environment, and (2) an uncertainty of the depth; and

(C) determining when to slow down the robot's end effector based on the depth and the uncertainty of the depth.

2. The method of claim 1 , wherein (A)(1) further comprises receiving, as training data:

depth data representing, for each of the plurality of training images I, depths in the three-dimensional scene represented by the training image; and

wherein (A)(2) comprises training the neural network using the plurality of training images I, the depth data, and the plurality of poses as training data, to produce the trained neural network.

3. The method of claim 2 :

wherein the depth data comprises a plurality of aligned depth images D comprising, for each of the plurality of training images I, a corresponding aligned depth image representing a depth map of the three-dimensional scene represented by the training image; and

wherein (A)(2) comprises training the neural network using the plurality of training images I, the plurality of aligned depth images D, and the plurality of poses as training data, to produce the trained neural network.

4. The method of claim 2 :

wherein (A)(1) further comprises receiving, as training data, a plurality of grasp successes indicating whether a plurality of attempts by the robot's end effector to grasp an object in the three-dimensional environment were successful; and

wherein (A)(2) comprises training the neural network using the plurality of training images I, the depth data, the plurality of poses, and the plurality of grasp successes as training data, to produce the trained neural network.

5. The method of claim 1 :

wherein (A)(1) further comprises receiving, as training data, a plurality of grasp successes indicating whether a plurality of attempts by the robot's end effector to grasp an object in the three-dimensional environment were successful; and

wherein (A)(2) comprises training the neural network using the plurality of training images I, the plurality of poses, and the plurality of grasp successes as training data, to produce the trained neural network.

6. The method of claim 3 , further comprising:

(B) before (A), generating the training data, comprising, for each of a plurality of attempts A corresponding to a plurality of target points T in the input image:

(B)(1) controlling the robot's end effector to move into the three-dimensional environment to target a point, in the three dimensional environment, corresponding to the target point T;

(B)(2) identifying a pose of the robot's end effector at a time when the robot's end effector has stopped moving in the three-dimensional environment; and

(B)(3) generating a training image of the three-dimensional environment at the time when the robot's end effector has stopped moving in the three-dimensional environment;

thereby generating the training data, the training data comprising the plurality of training images I, and the plurality of poses of the robot's end effector.

7. The method of claim 6 , wherein (B) further comprises:

(B)(4) generating an aligned depth image of the three-dimensional environment at the time when the robot's end effector has stopped moving in the three-dimensional environment; and

thereby generating the plurality of aligned depth images D.

8. The method of claim 6 , wherein (B)(1) comprises controlling the robot's end effector to move into the three-dimensional environment to target a point, in the three dimensional environment, corresponding to the target point T, and controlling the robot's end effector to attempt to grasp an object at the point in the three-dimensional environment.

9. The method of claim 8 , wherein (B) further comprises:

(B)(5) generating a grasp success indicating whether the attempt to grasp the object at the point in the three-dimensional environment was successful.

10. The method of claim 6 , wherein (B)(1) comprises:

controlling the robot's end effector to move into the three dimensional environment to target a point, corresponding to the target point T; and

identifying a point, in the three dimensional environment, at which the robot's end effector makes contact with an object in the three dimensional environment.

11. The method of claim 10 , wherein (B)(2) comprises identifying a pose of the robot's end effector at the time when the robot's end effector makes contact with the object in the three dimensional environment.

12. The method of claim 6 , wherein (B)(1) comprises:

(B)(1)(a) controlling the robot's end effector to target the point, in the three dimensional environment, corresponding to the target point T, at a first speed;

(B)(1)(b) determining that the robot's end effector is within at most a minimum distance from an object in the three dimensional environment; and

(B)(1)(c) in response to the determination of (B)(1)(b), controlling the robot's end effector to target the point, in the three dimensional environment, corresponding to the target point T, at a second speed, wherein the first speed is greater than the second speed.

13. A system comprising at least one non-transitory computer-readable medium having computer program instructions stored thereon, the computer program instructions being executable by at least one computer processor to perform a method, the method comprising:

(A) training a neural network, the training comprising:

(A)(1) receiving, as training data:

a plurality of training images I, each representing a three-dimensional scene at a corresponding time when a robot's end effector is at a corresponding stopping point in the three-dimensional scene; and

a plurality of poses of an end effector of a robot, each representing a corresponding pose of the robot's end effector at a corresponding one of the stopping points; and

(A)(2) training the neural network using the plurality of training images I, and the plurality of poses as the training data, to produce a trained neural network;

(B) applying the trained neural network to predict, for each of a plurality of pixels P in an input image, (1) a depth that the robot's end effector would reach in a three-dimensional environment if the robot's end effector moved into the three-dimensional environment to target a projection of the pixel P onto the three-dimensional environment, and (2) an uncertainty of the depth; and

(C) determining when to slow down the robot's end effector based on the depth and the uncertainty of the depth.

14. The system of claim 13 , wherein (A)(1) further comprises receiving, as training data:

depth data representing, for each of the plurality of training images I, depths in the three-dimensional scene represented by the training image; and

wherein (A)(2) comprises training the neural network using the plurality of training images I, the depth data, and the plurality of poses as training data, to produce the trained neural network.

15. The system of claim 14 :

wherein the depth data comprises a plurality of aligned depth images D comprising, for each of the plurality of training images I, a corresponding aligned depth image representing a depth map of the three-dimensional scene represented by the training image; and

wherein (A)(2) comprises training the neural network using the plurality of training images I, the plurality of aligned depth images D, and the plurality of poses as training data, to produce the trained neural network.

16. The system of claim 14 :

wherein (A)(1) further comprises receiving, as training data, a plurality of grasp successes indicating whether a plurality of attempts by the robot's end effector to grasp an object in the three-dimensional environment were successful; and

wherein (A)(2) comprises training the neural network using the plurality of training images I, the depth data, the plurality of poses, and the plurality of grasp successes as training data, to produce the trained neural network.

17. The system of claim 13 :

wherein (A)(1) further comprises receiving, as training data, a plurality of grasp successes indicating whether a plurality of attempts by the robot's end effector to grasp an object in the three-dimensional environment were successful; and

wherein (A)(2) comprises training the neural network using the plurality of training images I, the plurality of poses, and the plurality of grasp successes as training data, to produce the trained neural network.

18. The system of claim 15 , wherein the method further comprises:

(B) before (A), generating the training data, comprising, for each of a plurality of attempts A corresponding to a plurality of target points T in the input image:

(B)(1) controlling the robot's end effector to move into the three-dimensional environment to target a point, in the three dimensional environment, corresponding to the target point T;

(B)(2) identifying a pose of the robot's end effector at a time when the robot's end effector has stopped moving in the three-dimensional environment; and

(B)(3) generating a training image of the three-dimensional environment at the time when the robot's end effector has stopped moving in the three-dimensional environment;

thereby generating the training data, the training data comprising the plurality of training images I, and the plurality of poses of the robot's end effector.

19. The system of claim 18 , wherein (B) further comprises:

(B)(4) generating an aligned depth image of the three-dimensional environment at the time when the robot's end effector has stopped moving in the three-dimensional environment; and

thereby generating the plurality of aligned depth images D.

20. The system of claim 18 , wherein (B)(1) comprises controlling the robot's end effector to move into the three-dimensional environment to target a point, in the three dimensional environment, corresponding to the target point T, and controlling the robot's end effector to attempt to grasp an object at the point in the three-dimensional environment.

21. The system of claim 20 , wherein (B) further comprises:

(B)(5) generating a grasp success indicating whether the attempt to grasp the object at the point in the three-dimensional environment was successful.

22. The system of claim 18 , wherein (B)(1) comprises:

controlling the robot's end effector to move into the three dimensional environment to target a point, corresponding to the target point T; and

identifying a point, in the three dimensional environment, at which the robot's end effector makes contact with an object in the three dimensional environment.

23. The system of claim 22 , wherein (B)(2) comprises identifying a pose of the robot's end effector at the time when the robot's end effector makes contact with the object in the three dimensional environment.

24. The system of claim 18 , wherein (B)(1) comprises:

(B)(1)(a) controlling the robot's end effector to target the point, in the three dimensional environment, corresponding to the target point T, at a first speed;

(B)(1)(b) determining that the robot's end effector is within at most a minimum distance from an object in the three dimensional environment; and

(B)(1)(c) in response to the determination of (B)(1)(b), controlling the robot's end effector to target the point, in the three dimensional environment, corresponding to the target point T, at a second speed, wherein the first speed is greater than the second speed.

Assignments (2)
SECURITY INTEREST Recorded Apr 4, 2023
From: OSARO, INC.
To: NOMURA STRATEGIC VENTURES FUND 1, LP
Reel/Frame 063214/0982 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2020
From: GOODRICH, BEN; KUEFLER, ALEX; RICHARDS, WILLIAM D.; CORREA, CHRISTOPHER; SHARMA, RISHI; KUMRA, SULABH
To: OSARO
Reel/Frame 053765/0734 →
Continuity (2)
Provisional Application 62900335 · Sep 13, 2019
Related Publication 20210081791A1 · Mar 18, 2021
References Cited (35)
US 20140016856A1 · Jiang · 2014 [cited by examiner]
US 20170252922A1 · Levine · 2017 [cited by examiner]
US 20180361586A1 · Tan · 2018 [cited by examiner]
US 20200198148A1 · Ueno · 2020 [cited by examiner]
US 20210174524A1 · Wang · 2021 [cited by examiner]
Goodrich, B., et al., “Depth by Poking: Learning to Estimate Depth from Self-Supervised Grasping”, IEEE International Conference on Robotics and Automation (ICRA) 2020, arXiv:2006.08903v1, pp. 1-7 (Jun. 16, 2020). [cited by applicant]
Viereck, U., et al., “Learning a Visuomotor Controller for Real World Robotic Grasping Using Simulated Depth Images”, Proceedings of the 1st Annual Conference on Robot Learning (CoRL), pp. 1-10 (Nov. 13-15, 2017). [cited by applicant]
Morrison, D., et al., “Closing the loop for robotic grasping: A real-time, generative grasp synthesis approach,” arXiv:1804.05172v2, pp. 1-10 (May 15, 2018). [cited by applicant]
Mahler, J., et al., “Dex-net 3.0: Computing robust vacuum suction grasp targets in point clouds using a new analytic model and deep learning”, 2018 IEEE International Conference on Robotics and Automation (ICRA), pp. 1-… [cited by applicant]
Geiger, A., et al., “Are we ready for autonomous driving? The KITTI vision benchmark suite”, 2012 IEEE Conference on Computer Vision and Pattern Recognition, pp. 1-8 (2012). [cited by applicant]
Tatoglu, A., and Pochiraju, K., “Point cloud segmentation with lidar reflection intensity behavior”, 2012 IEEE International Conference on Robotics and Automation, pp. 1-5 (2012). [cited by applicant]
Fanello, S.R., et al., “HyperDepth: Learning depth from structured light without matching”, in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp. 5441-5450 (2016). [cited by applicant]
Lysenkov, I., et al., “Recognition and pose estimation of rigid transparent objects with a kinect sensor”, pp. 1-8 (2013). [cited by applicant]
Isola, P., et al., “Image-to-image translation with conditional adversarial networks,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, arXiv:1611.07004v3, pp. 1-17 (2018). [cited by applicant]
Kendall, A., et al., “End-to-end learning of geometry and context for deep stereo regression,” in Proceedings of the IEEE International Conference on Computer Vision, pp. 66-75 (2017). [cited by applicant]
Smolyanskiy, N., et al., “On the importance of stereo for accurate depth estimation: An efficient semi-supervised deep neural network approach,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recog… [cited by applicant]
Geiger, A., et al., “Efficient large-scale stereo matching”, Computer Science, vol. 6492, pp. 1-14 (2011). [cited by applicant]
Jang, E., et al., “Grasp2vec: Learning object representations from self-supervised grasping”, 2nd Conference on Robot Learning, arXiv:1811.06964v2, pp. 1-14 (2018). [cited by applicant]
Kalashnikov, D., et al., “Scalable deep reinforcement learning for vision-based robotic manipulation”, 2nd Conference on Robot Learning (CoRL 2018), vol. 87, pp. 1-23 (2018). [cited by applicant]
Pathak, D., et al., “Zero-shot visual imitation, in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops”, pp. 1-16 (2018). [cited by applicant]
Ebert, F., et al., “Self-supervised visual planning with temporal skip connections”, 2nd Conference on Robot Learning (CoRL), arXiv:1710.05268v1, pp. 1-13 (2017). [cited by applicant]
Ebert, F., et al., “Robustness via retrying: Closed-loop robotic manipulation with self-supervised learning”, 2nd Conference on Robot Learning (CoRL), arXiv:1710.05268v1, pp. 1-12 (2018). [cited by applicant]
Pinto, L., and Gupta, A., et al., “Supersizing self-supervision: Learning to grasp from 50k tries and 700 robot hours”, 2016 IEEE International Conference on Robotics and Automation (ICRA), pp. 1-8 (2015). [cited by applicant]
Agrawali, P., et al., “Learning to poke by poking: Experiential learning of intuitive physics”, arXiv:1606.07419v2, pp. 1-10 (Feb. 15, 2017). [cited by applicant]
Kahn, G., et al., “Uncertainty-aware reinforcement learning for collision avoidance,” arXiv:1702.01182v1, pp. 1-12 (Feb. 3, 2017). [cited by applicant]
Kendall, A., et al., “What uncertainties do we need in Bayesian deep learning for computer vision?”, Advances in Neural Information Processing Systems 30 (NIPS 2017) pp. 1-11 (2017). [cited by applicant]
Kendall, A., et al., “Multi-task learning using uncertainty to weigh losses for scene geometry and semantics”, Computer Vision and Pattern Recognition, arXiv:1705.07115v3, pp. 1-14 (Apr. 24, 2018). [cited by applicant]
Long, J., et al., “Fully convolutional networks for semantic segmentation”, Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), arXiv:1411.4038v2, pp. 1-10 (Mar. 8, 2015). [cited by applicant]
Lin, T., et al., “Feature pyramid networks for object detection”, Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 2117-2125 (2017). [cited by applicant]
Kaiming, H., et al., “Deep residual learning for image recognition”, 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 770-778 (2016). [cited by applicant]
Lin, T., et al., “Microsoft COCO: Common objects in context”, Computer Vision and Pattern Recognition, arXiv:1405.0312v3, pp. 1-15 (Feb. 21, 2015). [cited by applicant]
Bishop, C. M., et al., “Mixture density networks”, Mixture density networks, Technical Report, pp. 1-26 (Feb. 1994). [cited by applicant]
Saxe, A. M., et al., “On random weights and unsupervised feature learning”, in Proceedings of the 28th International Conference on International Conference on Machine Learning, vol. 2, No. 3, pp. 1-9 (2011). [cited by applicant]
Cook, R.D., and Weisberg, S., “Residuals and influence in regression,” New York: Chapman and Hall, pp. 1-240 (1982). [cited by applicant]
Yang, S.W., and Wang, C., “On solving mirror reflection in LIDAR sensing”, IEEE/ASME Transactions on Mechatronics, vol. 16, No. 2, pp. 255-265 (2011) (Abstract). [cited by applicant]