Robpod Studio Docs
  • Get Started
    • Introduction
    • Download
    • Installation
      • Install Platform
      • Install Plugin
    • First Steps
      • Choose Studio Flavor
      • Welcome Screen
      • Create a Project
      • Create a Script
      • User Interface
      • New UI
      • Robpod Studio Assistant
    • License
      • Buy a License
      • Install a License
    • Safety
  • ROBOT
    • Robot Toolbar
      • Connect the Robot
      • Control the Robot
      • Get Positions
      • Move To
      • Run a Script
    • Robot Tool Window
      • Status
      • Teach Pendant Viewer
      • Variables
      • Digital I/O
      • Analog I/O
      • Debug
    • Robot Variables
    • Robot Logs
  • Advanced Scripting
    • Live Auto Completion
    • Templete Completion
    • Param Info
    • Code Inspections
    • Quick Doc
    • Python Scripting
    • Editor Settings
  • Synchronization
    • Upload On Robot
    • Download From Robot
    • Synchronize Project
    • Clean Robot Files
    • Synchronization Settings
  • Simulation
    • Connect a Simulator
    • Simulate a Script
    • Off-Line Programming
    • Simulator Viewer
    • Simulation Commands
    • Simulation Settings
    • Simulation Examples
      • Palletizing
  • HMI Designer
    • Introduction
    • User Interface
    • Installation
    • Design Steps
      • Create new HMI Panel
      • Add HMI Components
      • Edit HMI Components
      • Preview HMI Panel
      • Synchronize HMI Panel
      • Run HMI Program
    • HMI Components
    • HMI Charts
    • Display Conditions
    • HMI Commands
    • HMI Icon Generator
    • Desktop HMI Viewer
    • HMI and UR Polyscope
    • HMI and Doosan Robotics
    • HMI Tutorials
      • Beginner Tutorial
      • UR Polyscope Tutorial
      • Doosan Robotics Task Editor Tutorial
      • Doosan Robotics DRL Tutorial
    • Working Examples
      • Universal Robots
        • Pick and Place Example
        • Polishing Example
        • Machine Tending Example
        • Simple Pallet Example
        • Welding Example
        • Skrewdriving Example
        • Chart Monitoring Example
        • Production Mix Example
        • Pallet App Example
        • Camera QA Example
        • Assembly Example
      • Doosan Robotics
        • Pick and Place Example DR
  • Other
    • Updates
    • License FAQ
    • Customer Portal
  • LEGAL
    • License Agreement
    • Privacy Policy
    • Third Party Licenses
  • Appendix
    • Supported Robots
    • Robot Specific Functions
      • Universal Robots
        • URSim
    • Supported Simulators
    • Network Configuration
    • Security Settings
Powered by GitBook
On this page
  • HMI Panel File
  • Robot Program File
  1. HMI Designer
  2. Working Examples
  3. Universal Robots

Camera QA Example

PreviousPallet App ExampleNextAssembly Example

Last updated 10 months ago

With this QA example users can choose what part of vehicle inspect with camera.

HMI Panel File

Robot Program File

# Robot script file
# QA result for each part
label_ok = False
break_ok = False
mirror_ok = False
handle_ok = False
door_ok = False
hinge_ok = False

# user choice - selected part will be inspected
check_label = False
check_break = False
check_mirror = False
check_handle = False
check_door = False
check_hinge = False

home = [1.54, -1.21, -1.91, -3.17, -0.03, -3.14]

# inspection function for each part
def qa_label():
    movej([0.50, -0.95, -2.46, -2.87, -1.07, -3.14])
    movel(p[0.401, -0.560, 0.513, -1.21, 1.21, -1.21])
    movel(p[0.401, -0.060, 0.513, -1.20, 1.21, -1.21])
    movel(home)
end

def qa_break():
    movel(p[0.398, -0.921, 0.203, -1.20, 1.21, -1.22])
    p1 = p[0.391, -1.060, 0.083, -1.20, 1.21, -1.21]
    p2 = p[0.381, -0.890, -0.037, -1.20, 1.21, -1.21]
    movec(p1, p2)

    p3 = p[0.381, -0.710, 0.133, -1.20, 1.21, -1.21]
    p4 = p[0.381, -0.920, 0.283, -1.20, 1.21, -1.21]
    movec(p3, p4)
    movel(home)
end

def qa_mirror():
    movej([0.99, -1.96, -0.72, -3.57, 1.18, 0.01])
    movel(p[0.646, 0.369, 0.775, 1.59, -0.17, -0.12])
    movel(p[0.531, 0.388, 0.773, 1.59, -0.17, -0.13])
    movej(home)
end

def qa_handle():
    movej([1.55, -2.10, -1.22, -2.97, -0.02, -3.14])
    movel(p[0.342, 1.079, 0.592, -1.21, 1.21, -1.21])
    movel(p[0.339, 0.867, 0.593, -1.21, 1.21, -1.21])
    movej(home)
end

def qa_door():
    movej([1.53, -2.36, -0.50, -3.42, -0.45, -3.14])
    movel(p[0.353, 1.035, 0.241, -1.38, 0.90, -0.91])
    movel(p[0.343, 0.675, 0.241, -1.54, 1.53, -0.91])
    movel(p[0.343, 0.205, 0.241, -1.44, 1.76, -1.22])
    movej(home)
end

def qa_hinge():
    movej([1.53, -2.36, -0.50, -3.42, -0.45, -3.14])
    movel(p[0.343, 0.675, 0.241, -1.54, 1.53, -0.91])
    movel(p[0.343, 0.205, 0.241, -1.44, 1.76, -1.22])
    movej(home)
end

# main function
def start_task():
    label_ok = False
    break_ok = False
    mirror_ok = False
    handle_ok = False
    door_ok = False
    hinge_ok = False

    movej(home)

    if check_label:
    	qa_label()
    	label_ok = True
    end

    if check_break:
        qa_break()
        break_ok = True
    end

    if check_mirror:
        qa_mirror()
        mirror_ok = True
    end

    if check_handle:
        qa_handle()
        handle_ok = True
    end

    if check_door:
        qa_door()
        door_ok = True
    end

    if check_hinge:
        qa_hinge()
        hinge_ok = True
    end
end

225KB
camera_qa.hmi
2KB
qa_script.script
1KB
camera_qa_app.urp