US 12,304,070 B2
Grasp teach by human demonstration
Kaimeng Wang, Fremont, CA (US); and Yongxiang Fan, Fremont, CA (US)
Assigned to FANUC CORPORATION, Yamanashi (JP)
Filed by FANUC CORPORATION, Yamanashi (JP)
Filed on Sep. 23, 2022, as Appl. No. 17/934,808.
Prior Publication US 2024/0109181 A1, Apr. 4, 2024
Int. Cl. B25J 9/00 (2006.01); B25J 9/16 (2006.01); B25J 19/02 (2006.01); G06F 17/17 (2006.01); G06F 18/2413 (2023.01); G06V 40/10 (2022.01); G06V 40/20 (2022.01)
CPC B25J 9/0081 (2013.01) [B25J 9/1612 (2013.01); B25J 9/1697 (2013.01); B25J 19/023 (2013.01); G06F 17/17 (2013.01); G06F 18/24147 (2023.01); G06V 40/10 (2022.01); G06V 40/28 (2022.01)] 18 Claims
OG exemplary drawing
 
1. A method for teaching a grasp for use by a robotic grasping system, said method comprising:
providing an object model for an object to be grasped, and a gripper model for a gripper on a robot;
performing a demonstration of the grasp on the object by a hand of a human demonstrator;
analyzing images of the demonstration to identify a hand coordinate frame and a nominal gripper coordinate frame corresponding with the hand coordinate frame;
computing a grasp region on the object based on a position and orientation of the hand coordinate frame with respect to a pose of the object, including computing a hand plane from the hand coordinate frame, passing the hand plane through a point cloud of the object and selecting to include in the grasp region points on exterior surfaces of the object which meet criteria for proximity to the hand plane and an origin of a hand coordinate frame;
computing an optimized grasp for the grasp region and the nominal gripper coordinate frame, using a computer having a processor and memory;
repeating computing an optimized grasp with initial values of the nominal gripper coordinate frame randomized within a range, to produce a plurality of optimized grasps;
selecting a best one of the plurality of optimized grasps by comparing each of the optimized grasps with the hand coordinate frame and the grasp region; and
outputting data defining the best one grasp to a grasp database.