Now that the camera is calibrated, you will need to align the origin and orientation of the camera image (defined by the location of the fiducial in the calibration grid), with a workobject defined in the robot. If the camera does not recognize the calibration image, it may require adjusting the camera position, exposure, or focus. Once the image has been acquired, and the camera can recognize the calibration image, select the Calibrate button to load the calibration data into the active camera job. Once in place, select Next in the context menu with the grid setup, and then select Acquire Image within the context menu. Verify the spacing of the checkers on the grid matches the selection in the previous view.Ĭenter the grid within the field of view of the camera, and tape it in place (it'll be important later that the grid does not move after the calibration image has been taken). Once the grid parameters have been set up, select Print Grid to print off a copy of the grid. Select radial for straight-on pictures (for example, top-down) view, or choose projection if the camera is not parallel with the target object (for example, being mounted perpendicular to it). The only option that may need adjustment would be the lens model. The other options can be left as is (see below). Verify the selection of Checkerboard, with fiducial for the grid type. Selecting grid will pull up the configuration options for the grid calibration sizing. To do so, select the Calibrate button from the top ribbon, then select Grid from the Calibration Type drop-down in the context menu. The easiest way to do this is with the grid calibration method. Now that the camera is connected, you need to calibrate the images from the camera to real-world units of measurement (pixels to millimeters). Warm restart the virtual controller you are using, and an unconfigured camera should appear under Vision System in the system tree. In this XML file, set the IP Address/Subnet to that of the NIC connected to the camera. To do so, find the vc_network_definition.xml file in the RobotStudio/Systems/Controller Name/Home/IV folder.
If you are connecting a camera (or an emulated camera) to a virtual robot controller, you will need to define the virtual programming port of the virtual controller to which the camera is connecting.
In this window, you should be able to see all cameras physically connected to the network and can change network settings of the cameras accordingly. If not, then from the vision tab, select Connect/Add Senor. Once connected, the camera should appear under Vision System in the left-hand controller tree. Right-clicking will open the Integrated Vision tab of RobotStudio.Ĭonnect the camera to the robot controller service port switch. To access the Integrated Vision tab, expand your robot controller (physical or virtual) in the left-hand controller pane and right-click on the Vision System item. The ABB RobotStudio's "Integrated Vision" feature is essentially a "Cognex In-Sight Lite," and as of publication, this is only functional on the 32-bit version of robot studio. To prove to myself that it could not have been an issue of technological limitations (and to have an excuse to play with a Cognex camera, ABB's RobotStudio, and the Star Wars toys I keep on my desk), I decided to spin up a quick tutorial to show that I could, in fact, locate and retrieve the droid I was looking for. Of all the unanswered questions of the universe, the one that consistently keeps me up at night is this: In Star Wars: Episode IV - A New Hope, if recovering the Death Star plans were so vital to the security of the Galactic Empire, why would you send Storm Troopers to do a job that a machine could do just as well, especially if the machine would be immune to Jedi mind tricks?