A method implemented by one or more processors, comprising: generating, based on a user-guided robotic grasp attempt of an object in a virtual reality environment, a training instance that comprises: one or more rendered images for the user-guided robotic grasp attempt, the one or more rendered images generated from the virtual reality environment and capturing the object, a grasp pose for the user-guided robotic grasp attempt, wherein the grasp pose is based on a virtual pose of a virtual robot end effector in the virtual environment during the user-guided robotic grasp attempt, and a grasp outcome measure that indicates whether the user-guided robotic grasp attempt of the object was successful; characterised by automatically generating a plurality of additional training instances based on the user-guided robotic grasp attempt, wherein automatically generating each of the plurality of additional training instances based on the user-guided robotic grasp attempt comprises: determining a new grasp pose based on the new grasp pose being within a variance of the grasp pose from the user-guided robotic grasp attempt; attempting a new grasp attempt of the object utilizing the new grasp pose; determining whether the new grasp attempt was successful; and generating the additional training instance to include the new grasp pose, one or more new images from the new grasp attempt, and a new grasp outcome measure that is based on whether the new grasp attempt was successful; and training a neural network model utilizing the training instance and the additional training instances. one or more rendered images for the user-guided robotic grasp attempt, the one or more rendered images generated from the virtual reality environment and capturing the object, a grasp pose for the user-guided robotic grasp attempt, wherein the grasp pose is based on a virtual pose of a virtual robot end effector in the virtual environment during the user-guided robotic grasp attempt, and a grasp outcome measure that indicates whether the user-guided robotic grasp attempt of the object was successful; characterised by automatically generating a plurality of additional training instances based on the user-guided robotic grasp attempt, wherein automatically generating each of the plurality of additional training instances based on the user-guided robotic grasp attempt comprises: determining a new grasp pose based on the new grasp pose being within a variance of the grasp pose from the user-guided robotic grasp attempt; attempting a new grasp attempt of the object utilizing the new grasp pose; determining whether the new grasp attempt was successful; and generating the additional training instance to include the new grasp pose, one or more new images from the new grasp attempt, and a new grasp outcome measure that is based on whether the new grasp attempt was successful; and training a neural network model utilizing the training instance and the additional training instances. determining a new grasp pose based on the new grasp pose being within a variance of the grasp pose from the user-guided robotic grasp attempt; attempting a new grasp attempt of the object utilizing the new grasp pose; determining whether the new grasp attempt was successful; and generating the additional training instance to include the new grasp pose, one or more new images from the new grasp attempt, and a new grasp outcome measure that is based on whether the new grasp attempt was successful; and training a neural network model utilizing the training instance and the additional training instances.