Example program version: 1.0.0
This repository demonstrates how to use the Generic Vision Interface with wenglor vision devices on a UR Polyscope X controller. The included Generic wenglor interface.urpx file acts as a working sample program that you can adopt and customize for your application.
NOTE
This repository focuses exclusively on Polyscope X-specific topics. For general robot vision information, please refer to the wenglor robot vision manual.
📖 Full documentation is available in the online manual
- Prerequisites
- Installation
- Running the Sample Program
- Configuration
- Troubleshooting
- Support & Feedback
Tested with Polyscope X SW 10.7.0
- Polyscope X compatible ControlBox (version ≥ CB5.6).
- e-Series or UR Series robot arm.
- Basic knowledge of URScript.
- A B60 (firmware ≥ 1.4) or Machine Vision Controller (MVC) (firmware ≥ 1.1).
- A uniVision job for calibration and object detection.
- Robot and Machine Vision Device in the same network.
- Get
Generic wenglor interface.urpxfrom thesourcesdirectory of this repository. - Copy the file to a USB stick or a location reachable from the Polyscope X file browser.
- On the UR Teach Pendant, open the Polyscope X Program interface, import the file, and confirm. Polyscope X loads the program together with its
wenglor_examples,wenglor_api, andwenglor_helpersmodules. - Enter the password of the UR robot when prompted (by default
ursafe). - Follow the Configuration steps below.
- Navigate to the program tab and call either
single_detectionormulti_detectionfrom thewenglor_examplesmodule as the Main Program entry point. - Select the TCP used for calibration.
- Execute the program and monitor the messages displayed on the teach pendant.
All parameters and poses are located in the Installation node tree under Before Start → User Config, in the Program tab.
WG_CAM_IP— IP address of the Machine Vision Device (default192.168.100.1).WG_CAM_PORT— TCP port of the robot vision server (default32006).WIG_COMMAND_TIMEOUT— Socket read timeout in seconds (default20).
WG_CALIB_JOB— Job used for calibration (defaultcalibration.u3p).WG_FIND_OBJECTS_JOB— Job used bysingle_detectionandmulti_detection(defaultfind_objects.u3p).WG_FIND_TARGET_JOB— Job used byupdate_reference_frame(defaultfind_target.u3p).
WG_USE_CASE— Eithercamera_on_robotorcamera_not_on_robot(defaultcamera_on_robot).WG_CALIBRATION_TARGET— Defines the calibration plate (defaultzvzj001). Selectzvzj001for ZVZJ005,zvzj002for ZVZJ006.
g_detection_pose— Pose the robot moves to for object detection and validation. Teach this pose via Set Expression → Edit Waypoint.WG_CALIB_POSE_1…WG_CALIB_POSE_5— The five calibration poses; teach each one.
See the User Configuration page for the full variable list, including the validation offset and the update_reference_frame workflow (WG_MACHINE_POSES_TAUGHT, G_POSE_IN_MACHINE).
- Verify the values of
WG_CAM_IPandWG_CAM_PORTinProgram → Before Start → User Config. - Ensure the robot server on the Machine Vision Device is active: navigate to the device website →
Jobs→ Processing Instance →Robot Server. - Check network connectivity and firewall rules between the robot controller and the Machine Vision Device.
You can improve calibration accuracy by using more than five calibration poses. Add additional calibration movements — each followed by a call to wenglor_api.add_calibration_pose — in Program → wenglor_api → run_calibration, after the existing WG_CALIB_POSE_5 step and before calibration:calculate[...] is sent.
See the Troubleshooting page for more, including error codes returned by the device and reasons the program may exit unexpectedly.
- Bugs: Please open a new Issue in the GitHub Issues section if needed.
- Feature Requests & Ideas: Discuss suggestions in the Discussions → Ideas category under GitHub Discussions.