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 9 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