quickstart:mycnc-quick-start:cnc-vision-setup
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
quickstart:mycnc-quick-start:cnc-vision-setup [2020/03/03 14:29] – ivan | quickstart:mycnc-quick-start:cnc-vision-setup [2023/11/02 11:29] – ivan | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | =====CNC Vision Setup===== | + | =====CNC Vision |
- | This manual is designed to introduce the reader to the setup process of the CNC vision | + | This manual is designed to introduce the reader to the setup process of the CNC Vision |
- | //Please note that the Vision System license for correcting the generated G-code using visual markers | + | The CNC Vision System is often used in the X1366V Tangential Cutting profile. The description of the X1366V GUI is available here: [[mycnc: |
+ | |||
+ | //Please note that the Vision System license for correcting the generated G-code using registration mark reading | ||
+ | |||
+ | //NOTE: The CNC Vision functionality is currently supported on **Linux systems ONLY**.// | ||
A video with the recap of the manual below is available here: | A video with the recap of the manual below is available here: | ||
Line 17: | Line 21: | ||
* **IP Camera Initialization line** lists the camera IP for the connection to be established. | * **IP Camera Initialization line** lists the camera IP for the connection to be established. | ||
- | * **Pattern size** can be set experimentally to be about 30-50% larger than the marker | + | * **Pattern size** can be set experimentally to be about 30-50% larger than the registration mark itself, in order to account for the visual transition between the registration |
- | * In the case of the particular marker used in this scenario, its size has been set to 160 pixels, which is on the low end of the relative pattern size - a larger pattern size is typically a safer choice in low-light conditions. | + | * In the case of the particular |
* NOTE: The camera focus must be properly adjusted in order for the camera to recognize markers. | * NOTE: The camera focus must be properly adjusted in order for the camera to recognize markers. | ||
- | {{: | ||
{{: | {{: | ||
- | * **Region of interest** (in pixels) signifies the area in which the camera is actively looking for markers, and should usually be set to be equal or slightly smaller than the actual resolution of the camera. It is set automatically in the newer software versions during the calibration process (software versions after July 2019). | + | * **Region of interest** (in pixels) signifies the area in which the camera is actively looking for registration marks, and should usually be set to be equal or slightly smaller than the actual resolution of the camera. It is set automatically in the newer software versions during the calibration process (software versions after July 2019). |
* **Pixel to length coefficient** is used to convert the pixels travelled into the actual physical distance moved, in mm. You are able to calibrate this for both the x- and the y-axes. In order to set up the correct coefficient for your camera, use the Calibrate button in the Camera tab, or consult the full set of manual set up instructions below (useful for older software versions). | * **Pixel to length coefficient** is used to convert the pixels travelled into the actual physical distance moved, in mm. You are able to calibrate this for both the x- and the y-axes. In order to set up the correct coefficient for your camera, use the Calibrate button in the Camera tab, or consult the full set of manual set up instructions below (useful for older software versions). | ||
- | * **Camera Shift** describes the distance the machine will move by if it does not locate a marker after it has been instructed to look for one. This can happen when the marker is not fully within the region of interest. In that case, the camera will keep on moving around until it either finds the marker or reaches the end of this specified Camera Shift. It is set automatically in the newer software versions during the calibration process. If no marker is found during the Camera Shift process, the machine will be stopped. | + | * **Camera Shift** describes the distance the machine will move by if it does not locate a registration |
* **Tool number** is typically assigned to be 10. | * **Tool number** is typically assigned to be 10. | ||
Line 38: | Line 41: | ||
* **Ignore decoder errors** flag is set to OFF by default. | * **Ignore decoder errors** flag is set to OFF by default. | ||
- | * **Shift Speed** describes the speed with which the machine is moving during its camera shift phase while trying to find the marker. NOTE: Deprecated on the newer versions of myCNC software. | + | * **Shift Speed** describes the speed with which the machine is moving during its camera shift phase while trying to find the registration |
- | * **Pattern Match Level** describes the level of parity with the original reference marker that each new marker must have for the system to recognize it. Higher numbers mean less parity (more differences between the markers), so as to avoid false positives it is advised to keep the numbers on the lower end of the scale. The graph below the Pattern Match Level indicates the parity levels during the machine search for markers, with the low points of the graph being indicative of the places where marker parity is highest (differences between new marker and reference are lowest). | + | * **Pattern Match Level** describes the level of parity with the original reference |
* If the program has issues locating markers due to those markers being slightly different (due to material imperfections, | * If the program has issues locating markers due to those markers being slightly different (due to material imperfections, | ||
+ | {{: | ||
- | * **Image sensor correction** corrects for sensors with different aspect ratios. Use this if the marker | + | * **Image sensor correction** corrects for sensors with different aspect ratios. Use this if the registration mark image appears distorted or stretched when viewed through the Camera tab in myCNC software. |
====CNC Vision codes==== | ====CNC Vision codes==== | ||
Line 49: | Line 53: | ||
The Vision system is controlled through a series of M-code PLCs which can be found in Settings > Config > PLC > Hardware PLC. | The Vision system is controlled through a series of M-code PLCs which can be found in Settings > Config > PLC > Hardware PLC. | ||
- | {{: | + | {{: |
The following PLC procedures are used: | The following PLC procedures are used: | ||
+ | * M395 - camera calibration. ++ Show M395 code | | ||
+ | < | ||
+ | #define camera_count | ||
+ | #define wait_camera | ||
+ | |||
+ | |||
+ | main() | ||
+ | { | ||
+ | camera_count=100; | ||
+ | wait_camera=100; | ||
+ | callback_address=3; | ||
+ | |||
+ | //delay after motion stopped | ||
+ | timer=300; do{timer--; | ||
+ | |||
+ | message=PLCCMD_WAIT_FOR_CAMERA; | ||
+ | timer=2; | ||
+ | |||
+ | do | ||
+ | { | ||
+ | |||
+ | if (wait_camera> | ||
+ | { | ||
+ | | ||
+ | do { code=gvarget(6060); | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | }; | ||
+ | |||
+ | }while (wait_camera> | ||
+ | |||
+ | exit(99); //normal exit | ||
+ | }; | ||
+ | </ | ||
+ | ++ | ||
* M397 - start camera operations. ++ Show M397 code | | * M397 - start camera operations. ++ Show M397 code | | ||
< | < | ||
Line 122: | Line 166: | ||
++ | ++ | ||
These PLCs are added automatically into the G-code when importing a DXF file into myCNC. In order for the system to recognize the markers, the markers need to be drawn as roughly 6mm circles inside a separate layer named '' | These PLCs are added automatically into the G-code when importing a DXF file into myCNC. In order for the system to recognize the markers, the markers need to be drawn as roughly 6mm circles inside a separate layer named '' | ||
+ | |||
+ | Additionally, | ||
====Calibrating the CNC Vision System==== | ====Calibrating the CNC Vision System==== | ||
Line 225: | Line 271: | ||
A camera troubleshooting guide is available here: [[troubleshooting: | A camera troubleshooting guide is available here: [[troubleshooting: | ||
+ | |||
+ | =====Creating the DXF files===== | ||
+ | |||
+ | A suitable DXF file can be created in an application such as Inkscape. A few rules to follow: | ||
+ | |||
+ | 1. The markers should be located outside the part contour (rather than inside of it): | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Note the way in which the contour connecting the camera markers needs to be fully outside the contour of the file being corrected in order to work properly: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 2. The markers and the part contour should be located in different layers (such as **Layer 1** for the working part and **Camera** for the markers), for example: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 3. If using Inkscape, make sure to export using the LWPOLYLINE option (instead of the ROBO-Master type): | ||
+ | |||
+ | {{: |
quickstart/mycnc-quick-start/cnc-vision-setup.txt · Last modified: 2024/02/26 14:50 by ivan