A method of training a robot situated in a workspace, the method comprising the steps of: (a) representing the robot in a 3D coordinate space encompassing at least a portion of the workspace by establishing a relative position of the robot relative to a camera, wherein the camera is located within or adjacent to the workspace or is part of the robot; (b) detecting, using data from the camera, a user gesture within the workspace, the gesture indicating a location, and based on the detected gesture, projecting a real image comprising an interface onto a surface within the workspace at the indicated location, the location being spatially distinct from where the robot is to perform a control function; (c) detecting gestural user selections of an element of the projected interface, the element of the projected interface corresponding to an item selection function; (d) detecting, using data from the camera, a user gesture comprising touching a physical item within the workspace upon which the robot control function is to operate; (e) detecting, using data from the camera, gestural user selection of an element of the projected interface corresponding to a goal location function, and a user gesture comprising touching a goal location within the workspace; (f) detecting, using data from the camera, gestural user selections of an element of the projected interface, the element of the projected interface corresponding to the robot control function; (g) computing a trajectory that will allow the robot to move the physical item to the goal location; and (h) causing the robot to execute the control function on the physical item, the robot control function comprising moving the physical item to the goal location according to the calculated trajectory. (a) representing the robot in a 3D coordinate space encompassing at least a portion of the workspace by establishing a relative position of the robot relative to a camera, wherein the camera is located within or adjacent to the workspace or is part of the robot; (b) detecting, using data from the camera, a user gesture within the workspace, the gesture indicating a location, and based on the detected gesture, projecting a real image comprising an interface onto a surface within the workspace at the indicated location, the location being spatially distinct from where the robot is to perform a control function; (c) detecting gestural user selections of an element of the projected interface, the element of the projected interface corresponding to an item selection function; (d) detecting, using data from the camera, a user gesture comprising touching a physical item within the workspace upon which the robot control function is to operate; (e) detecting, using data from the camera, gestural user selection of an element of the projected interface corresponding to a goal location function, and a user gesture comprising touching a goal location within the workspace; (f) detecting, using data from the camera, gestural user selections of an element of the projected interface, the element of the projected interface corresponding to the robot control function; (g) computing a trajectory that will allow the robot to move the physical item to the goal location; and (h) causing the robot to execute the control function on the physical item, the robot control function comprising moving the physical item to the goal location according to the calculated trajectory.