A method for calibration of a robot cell comprising: providing a camera, a robot arm, and a robot controller coupled to the robot and the camera, the robot controller having a processor running a computer program which generates a virtual environment with a virtual camera, and a virtual robot arm; creating by the robot controller, a set of virtual snapshots by the virtual camera of the virtual robot arm in the virtual environment in a plurality of virtual poses; taking a set of real snapshots by the camera of the robot arm in a real environment in a plurality of real poses which match the plurality of virtual poses; comparing by the robot controller, the set of virtual snapshots to the set of real snapshots to find the closest matching pair of virtual snapshot and real snapshot by means of an artificial intelligence image comparison algorithm or by determining differences in poses of real markers (273, 277) and virtual markers (253, 257) detected in the set of real snapshots and the set of virtual snapshots; determining by the robot controller, a reference virtual snapshot and a reference real snapshot from the closest matching pair of virtual snapshot and real snapshot; determining a location difference and/or an orientation difference between the reference virtual snapshot and the reference real snapshot; adjusting a calibration of the virtual robot cell by the robot controller based upon the location difference and/or the orientation difference between the reference virtual snapshot and the reference real snapshot; operating the virtual robot arm by the robot controller after the adjusting of the calibration of the virtual robot cell; and determining by the robot controller that the calibration of the virtual robot cell is within a predetermined required accuracy and adjusting the calibration of the virtual robot cell. providing a camera, a robot arm, and a robot controller coupled to the robot and the camera, the robot controller having a processor running a computer program which generates a virtual environment with a virtual camera, and a virtual robot arm; creating by the robot controller, a set of virtual snapshots by the virtual camera of the virtual robot arm in the virtual environment in a plurality of virtual poses; taking a set of real snapshots by the camera of the robot arm in a real environment in a plurality of real poses which match the plurality of virtual poses; comparing by the robot controller, the set of virtual snapshots to the set of real snapshots to find the closest matching pair of virtual snapshot and real snapshot by means of an artificial intelligence image comparison algorithm or by determining differences in poses of real markers (273, 277) and virtual markers (253, 257) detected in the set of real snapshots and the set of virtual snapshots; determining by the robot controller, a reference virtual snapshot and a reference real snapshot from the closest matching pair of virtual snapshot and real snapshot; determining a location difference and/or an orientation difference between the reference virtual snapshot and the reference real snapshot; adjusting a calibration of the virtual robot cell by the robot controller based upon the location difference and/or the orientation difference between the reference virtual snapshot and the reference real snapshot; operating the virtual robot arm by the robot controller after the adjusting of the calibration of the virtual robot cell; and determining by the robot controller that the calibration of the virtual robot cell is within a predetermined required accuracy and adjusting the calibration of the virtual robot cell.