UR

Contents

  • URCtrl Control Manual
    • Design Philosophy
      • Primary Objective
      • Concept of a Common Robot Interface
      • Separation of the Common Interface and Implementations
      • COBOTTA Is an Existing Implementation, Not the Standard
      • BL774-Style and SPring-8 Compatibility
      • Unit Conventions
      • Success and Failure Conventions
      • Policy for Unsupported Features
    • Common Interface and BL774-Style Systems
      • Not Merely a Standalone Robot API
      • Meaning of the BL774-Style Architecture
      • SPring-8 Compatibility
      • Scope of the Common API
      • Relationship to Device Servers
    • Quick Start
      • Minimal connection
      • Current position and joint angles
      • Move Z +10 mm from the current position
      • Create taught point P1
      • Move to P1
      • Move to P1 using LINE
      • Set IO outputs
      • Inspect errors
    • Units and Pose Representation
      • Public units
      • Internal UR units
      • P coordinates
      • Rotation vector
      • J coordinates
      • speed / accel
      • Default values
    • Connection and Initialization
      • Constructor
      • config
      • Dashboard
      • connect()
      • disconnect()
      • Context Manager (with)
    • Virtual Variables P/I/F/IO
      • Basics
      • Attribute access
      • get_var() / set_var()
      • P variables
      • teach()
      • I / F
      • IO
      • is_empty_position()
    • Motion API
      • MotionMode
      • move()
        • P String
        • Numeric P Coordinates
        • Numeric J Coordinates
      • Internal Mapping
      • move_path()
      • dev()
      • pose_trans()
      • p2j() / j2p()
      • drive()
      • stop()
    • State Monitoring
      • current_position
      • current_angle
      • state()
      • Robot mode
      • Safety status bits
      • motion_complete()
      • wait_for_complete()
    • I/O and TCP
      • set_IO()
      • get_IO()
      • get_digital_input()
      • set_tcp()
      • set_tool() / set_tool_define()
      • get_current_tool()
      • safety limit
    • Error Handling and Recovery
      • Policy
      • error_code
      • error_description
      • get_current_error_info()
      • reset_error()
      • turn_on_motor()
      • turn_off_motor()
      • Caution
    • API Reference
      • Connection
        • URCtrl(...)
        • connect() -> bool
        • disconnect() -> bool
        • reconnect() -> bool
        • is_connected() -> bool
        • get_version() -> str
      • Variables
        • get_var(kind_or_combined, id_num=None)
        • set_var(kind_or_combined, id_or_value, value=None)
        • get_P(id_num) / set_P(id_num, value)
        • teach(kind_or_combined="P", id_num=None, save=True)
        • get_I() / set_I() / get_F() / set_F()
      • Settings
        • set_motion_mode() / get_motion_mode()
        • set_coord_type() / get_coord_type()
        • set_speed() / get_speed()
        • set_jspeed() / get_jspeed()
        • set_accel() / get_accel()
        • set_decel() / get_decel()
      • Status
        • current_position
        • current_angle
        • state()
        • is_running()
        • motion_complete()
        • wait_for_complete(timeout=None, interval=0.02)
      • Motion
        • move(target, ...)
        • move_path(targets, ...)
        • drive(target, relative=False, ...)
        • dev(base, offset)
        • pose_trans(base, offset)
        • p2j(p_type_pos) / j2p(j_type_pos)
        • stop() / halt() / task_stop() / hand_stop()
      • IO / TCP
        • set_IO(id_num, value) / get_IO(id_num)
        • get_digital_input(id_num)
        • set_tcp(tcp)
        • get_current_tool()
        • is_pose_within_safety_limits(pose)
        • is_joints_within_safety_limits(joints)
      • Errors
        • get_current_error_info()
        • reset_error()
        • turn_on_motor() / turn_off_motor()
      • Unsupported
    • Tutorials
      • 1. Basic structure of a research script
      • 2. Create taught points
      • 3. Move to a taught point
      • 4. Move linearly to a measurement position
      • 5. Retract
      • 6. Combine motion with IO
      • 7. Inspect the state and stop
      • 8. Integrate into an experimental sequence
    • Implementation Differences and Porting Policy
      • Policy
      • Variable Management
      • Status Monitoring
      • Error Information
      • No-Ops Versus Unsupported Features
      • BL774 / SPring-8 Integration
    • Objectives
    • Role of URCtrl
    • Contents
    • Minimal Example
    • Author
  • UR Driver and Control Documentation
    • Chapter 1: Getting Started with UR Robot Control
      • About This Chapter
    • 1.1 What Is Universal Robots?
    • 1.2 CB Series and e-Series
      • CB Series
      • e-Series
    • 1.3 Ways to Control a UR Robot from Python
    • 1.4 What Is the Official RTDE Interface?
    • 1.5 SDU Robotics’ ur_rtde
    • 1.6 Difference from Dashboard Server
    • 1.7 Architecture Used in This Documentation
    • Next Chapter
    • Chapter 2: Installation and Connection Setup
      • About This Chapter
    • 2.1 System Configuration
    • 2.2 Required Software
    • 2.3 Installation by Operating System
      • Windows
      • Ubuntu
      • macOS
    • 2.4 Robot IP Address
    • 2.5 Verifying Network Connectivity
    • 2.6 What Is Remote Control?
    • 2.7 Enabling Remote Control
    • 2.8 Remote Mode
    • 2.9 Connecting from Python
    • 2.10 Receive Interface
    • 2.11 IO Interface
    • 2.12 Common Errors
      • Please enable remote control on the robot!
      • Connection refused
      • Robot is not running
      • Protective Stop
    • 2.13 Connection Checklist
    • Next Chapter
    • Chapter 3: Architecture of RTDE and ur_rtde
      • About this chapter
    • 3.1 Official Universal Robots RTDE
    • 3.2 SDU Robotics ur_rtde
    • 3.3 What RTDEControlInterface Actually Does
    • 3.4 RTDEReceiveInterface
    • 3.5 RTDEIOInterface
    • 3.6 Dashboard Server
    • 3.7 Primary / Secondary Interface
    • 3.8 Division of Responsibilities in URCtrl
    • Summary
    • Chapter 4: RTDEControlInterface
      • About This Chapter
    • 4.1 What Is RTDEControlInterface?
    • 4.2 Categories of Motion Commands
    • 4.3 moveJ
      • Arguments
      • Advantages
      • Disadvantages
    • 4.4 moveL
      • Arguments
    • 4.5 Difference Between moveJ and moveL
    • 4.6 moveP
    • 4.7 Acceleration
    • 4.8 Speed
    • 4.9 Asynchronous Execution
    • 4.10 Stop Commands
    • 4.11 Return Values
    • 4.12 Recommended Pattern
    • 4.13 Usage in ur_ctrl.py
    • Summary
    • Chapter 5: RTDEReceiveInterface
      • About This Chapter
    • 5.1 What Is the Receive Interface?
    • 5.2 Creating an Instance
    • 5.3 Reading Joint Positions
    • 5.4 Joint Velocities
    • 5.5 Reading the TCP Pose
    • 5.6 TCP Speed
    • 5.7 TCP Force
    • 5.8 Robot Mode
    • 5.9 Safety Mode
    • 5.10 Runtime State
    • 5.11 Digital Input
    • 5.12 Digital Output
    • 5.13 Joint Temperatures
    • 5.14 Determining Motion Completion
    • 5.15 Detecting a Stop
    • 5.16 The Concept Behind wait_move()
    • 5.17 Monitoring Loop
    • 5.18 Characteristics of RTDEReceive
    • Summary
    • Chapter 6: RTDEIOInterface
      • About This Chapter
    • 6.1 What Is I/O?
    • 6.2 Types of I/O
    • 6.3 RTDEIOInterface
    • 6.4 Standard Digital Output
    • 6.5 Standard Digital Input
    • 6.6 Tool Digital Output
    • 6.7 Tool Digital Input
    • 6.8 Analog Output
    • 6.9 Analog Input
    • 6.10 Gripper Control Example
    • 6.11 Toggle Operation
    • 6.12 Combining Motion and I/O
    • 6.13 Waiting for an Input
    • 6.14 Precautions for I/O Control
    • 6.15 Implementation in ur_ctrl.py
    • Summary
    • Chapter 7: Dashboard Server
      • About This Chapter
    • 7.1 What Is the Dashboard Server?
    • 7.2 Connection Port
    • 7.3 Sending Commands
    • 7.4 Power On
    • 7.5 Brake Release
    • 7.6 Program Load
    • 7.7 Program Play
    • 7.8 Pause
    • 7.9 Stop
    • 7.10 Shutdown
    • 7.11 Robot Status
    • 7.12 Program Status
    • 7.13 Safety Status
    • 7.14 Protective Stop
    • 7.15 Clearing a Protective Stop
    • 7.16 Safety Popup
    • 7.17 Typical Recovery Sequence
    • 7.18 Division of Responsibilities with RTDE
    • 7.19 Use in ur_ctrl.py
    • 7.20 Basic Sequence for Automatic Operation
    • Summary
    • Chapter 8: moveJ
      • About This Chapter
    • 8.1 What Is moveJ?
    • 8.2 Illustration of the Motion
    • 8.3 How Does the TCP Move?
    • 8.4 Applications
    • 8.5 Arguments
    • 8.6 q
    • 8.7 speed
    • 8.8 acceleration
    • 8.9 asynchronous
    • 8.10 Return Value
    • 8.11 Blend Radius
    • 8.12 Determining Arrival
    • 8.13 Joint Limits
    • 8.14 Collision Detection
    • 8.15 Advantages of moveJ
    • 8.16 Disadvantages of moveJ
    • 8.17 Comparison with moveL
    • 8.18 Recommended Usage
    • Summary
    • Chapter 9: moveL
      • About This Chapter
    • 9.1 What Is moveL?
    • 9.2 Difference from moveJ
    • 9.3 What Is the TCP?
    • 9.4 Pose
    • 9.5 Orientation
    • 9.6 Internal Processing
    • 9.7 Inverse Kinematics
    • 9.8 Singularities
    • 9.9 Speed
    • 9.10 Acceleration
    • 9.11 Blend
    • 9.12 Manufacturing Applications
    • 9.13 Applications Unsuitable for moveL
    • 9.14 Unreachable Poses
    • 9.15 Orientation Changes
    • 9.16 Choosing Between moveJ and moveL
    • 9.17 Common Mistakes
    • 9.18 Implementation in ur_ctrl.py
    • 9.19 Guidelines for Choosing moveJ or moveL
    • Summary
    • Chapter 10: speedJ and speedL
      • About This Chapter
    • 10.1 Differences from Move Commands
    • 10.2 What Is speedJ?
    • 10.3 Arguments
    • 10.4 qd
    • 10.5 time
    • 10.6 speedL
    • 10.7 speedL Example
    • 10.8 speedStop
    • 10.9 Characteristics of Velocity Control
    • 10.10 Applications
    • 10.11 Comparison with Move Commands
    • 10.12 Common Mistakes
    • 10.13 Design in ur_ctrl.py
    • Summary
    • Chapter 11: servoJ and servoL
      • About This Chapter
    • 11.1 Differences from moveJ
    • 11.2 How servoJ Works
    • 11.3 Basic Syntax
    • 11.4 q
    • 11.5 dt
    • 11.6 lookahead_time
    • 11.7 gain
    • 11.8 speed and acceleration
    • 11.9 Why Commands Must Be Sent Every Cycle
    • 11.10 servoStop()
    • 11.11 servoL
    • 11.12 Comparison with moveJ
    • 11.13 Difference from speedJ
    • 11.14 Joystick Control
    • 11.15 Visual Servoing
    • 11.16 Communication Latency
    • 11.17 Common Mistakes
    • 11.18 Design in ur_ctrl.py
    • 11.19 When to Use servoJ
    • Summary
    • Chapter 12: Force Mode
      • About This Chapter
    • 12.1 Position Control and Force Control
    • 12.2 Applications of Force Mode
    • 12.3 Basic Sequence
    • 12.4 Basic API
    • 12.5 task_frame
    • 12.6 selection_vector
    • 12.7 wrench
    • 12.8 force_type
    • 12.9 limits
    • 12.10 Operation During Force Mode
    • 12.11 Reading the Force
    • 12.12 Stopping Force Mode
    • 12.13 Common Applications
      • Connector Insertion
      • Button Pressing
      • Surface Following
    • 12.14 Precautions
    • 12.15 Difference from moveJ
    • 12.16 Design in ur_ctrl.py
    • Summary
    • Chapter 13: Freedrive Mode
      • About This Chapter
    • 13.1 What Is Freedrive?
    • 13.2 Relationship to Teaching
    • 13.3 Freedrive on the Teach Pendant
    • 13.4 Starting Freedrive from Python
    • 13.5 Ending Freedrive
    • 13.6 Reading the Current Position
    • 13.7 Example Teaching Program
    • 13.8 Differences from COBOTTA
    • 13.9 Payload Configuration
    • 13.10 Safety
    • 13.11 Relationship to Remote Control
    • 13.12 e-Series
    • 13.13 CB Series
    • 13.14 Typical Use Case
    • 13.15 Python Example
    • 13.16 Implementation in ur_ctrl.py
    • Summary
    • Chapter 14: Coordinate Systems (Base, TCP, Tool, and Feature)
      • About This Chapter
    • 14.1 Why Are Coordinate Systems Necessary?
    • 14.2 Base Coordinates
    • 14.3 Tool Coordinates
    • 14.4 TCP
    • 14.5 TCP Configuration
    • 14.6 Pose
    • 14.7 Units
    • 14.8 Rotation Vector
    • 14.9 Why Not Euler Angles?
    • 14.10 Motion in Base Coordinates
    • 14.11 Motion in Tool Coordinates
    • 14.12 Difference Between Base and Tool
    • 14.13 Feature Coordinates
    • 14.14 Workpiece Coordinates
    • 14.15 Coordinate Transformations
    • 14.16 poseTrans()
    • 14.17 poseInv()
    • 14.18 Common Mistakes
    • 14.19 Design in ur_ctrl.py
    • 14.20 Practical Considerations
    • Summary
    • Chapter 15: Forward and Inverse Kinematics
      • About This Chapter
    • 15.1 Joint Space and Cartesian Space
    • 15.2 Forward Kinematics
    • 15.3 Inverse Kinematics
    • 15.4 Why Multiple Solutions Exist
    • 15.5 Wrist Flip
    • 15.6 Why moveL Is Difficult
    • 15.7 Unreachable Positions
    • 15.8 Joint Limits
    • 15.9 Singularities
    • 15.10 Wrist Singularity
    • 15.11 Elbow Singularity
    • 15.12 Differences Between moveJ and moveL
    • 15.13 getInverseKinematics()
    • 15.14 Forward Kinematics
    • 15.15 Safety Check
    • 15.16 Typical Usage Example
    • 15.17 Implementation in ur_ctrl.py
    • 15.18 Common Problems
    • Summary
    • Chapter 16: Safety, Protective Stops, and Error Recovery
      • About This Chapter
    • 16.1 UR States
    • 16.2 Robot Mode
    • 16.3 Runtime State
    • 16.4 Safety Mode
    • 16.5 Protective Stop
    • 16.6 Emergency Stop
    • 16.7 Safeguard Stop
    • 16.8 Fault
    • 16.9 Detecting Errors
    • 16.10 Recovery Through the Dashboard
    • 16.11 Recommended Recovery Sequence
    • 16.12 RuntimeError
    • 16.13 Return Values of Move Commands
    • 16.14 wait_move()
    • 16.15 reset_error()
    • 16.16 turn_on_motor()
    • 16.17 Automatic Recovery
    • 16.18 State-Monitoring Thread
    • 16.19 Design in ur_ctrl.py
    • 16.20 Recommended Workflow for Practical Operation
    • Summary
    • Author
  • ur
    • ur package
      • Config
        • Config.BCAP_PORT
        • Config.CLIENT_LOGGER_NAME
        • Config.COBOTTA_IP
        • Config.JOYPAD_INTERVAL
        • Config.JOYPAD_LOGGER_NAME
        • Config.JOYPAD_PORT
        • Config.LOGGER_LEVEL
        • Config.ROBOT_IP
        • Config.ROBOT_VAR_FILE
        • Config.SERVER_IP
        • Config.SERVER_LOGGER_NAME
        • Config.SERVER_PORT
        • Config.TIMEOUT
        • Config.UR_DEFAULT_BLEND_RADIUS
        • Config.UR_MAX_JOINT_ACCELERATION
        • Config.UR_MAX_JOINT_SPEED
        • Config.UR_MAX_LINEAR_ACCELERATION
        • Config.UR_MAX_LINEAR_SPEED
        • Config.UR_USE_DASHBOARD
        • Config._load_yaml()
        • Config._resolve_path()
        • Config.load_yaml()
      • MotionMode
        • MotionMode.CIRCLE
        • MotionMode.LINE
        • MotionMode.PTP
        • MotionMode.SPLINE
      • UrCtrl
        • UrCtrl._VAR_NAME_RE
        • UrCtrl.accel
        • UrCtrl.approach()
        • UrCtrl.autocal()
        • UrCtrl.busy_status
        • UrCtrl.change_tool()
        • UrCtrl.change_work()
        • UrCtrl.check_error()
        • UrCtrl.clear_log()
        • UrCtrl.clear_servo_log()
        • UrCtrl.connect()
        • UrCtrl.coord_type
        • UrCtrl.current_angle
        • UrCtrl.current_position
        • UrCtrl.decel
        • UrCtrl.delete()
        • UrCtrl.dev()
        • UrCtrl.direct_mode
        • UrCtrl.disconnect()
        • UrCtrl.drive()
        • UrCtrl.error_code
        • UrCtrl.error_description
        • UrCtrl.extaccel
        • UrCtrl.extdecel
        • UrCtrl.extspeed
        • UrCtrl.get_F()
        • UrCtrl.get_I()
        • UrCtrl.get_IO()
        • UrCtrl.get_J()
        • UrCtrl.get_P()
        • UrCtrl.get_accel()
        • UrCtrl.get_all_var()
        • UrCtrl.get_check_ik()
        • UrCtrl.get_coord_type()
        • UrCtrl.get_current_angle()
        • UrCtrl.get_current_error_info()
        • UrCtrl.get_current_pose()
        • UrCtrl.get_current_position()
        • UrCtrl.get_current_tool()
        • UrCtrl.get_current_tool_no()
        • UrCtrl.get_current_work_no()
        • UrCtrl.get_decel()
        • UrCtrl.get_direct_mode()
        • UrCtrl.get_error()
        • UrCtrl.get_error_code()
        • UrCtrl.get_error_count()
        • UrCtrl.get_error_description()
        • UrCtrl.get_error_info()
        • UrCtrl.get_extaccel()
        • UrCtrl.get_extdecel()
        • UrCtrl.get_extspeed()
        • UrCtrl.get_jspeed()
        • UrCtrl.get_log_count()
        • UrCtrl.get_log_record()
        • UrCtrl.get_motion_complete()
        • UrCtrl.get_motion_mode()
        • UrCtrl.get_motion_preparation()
        • UrCtrl.get_path_blend()
        • UrCtrl.get_speed()
        • UrCtrl.get_task_status()
        • UrCtrl.get_tool()
        • UrCtrl.get_tool_define()
        • UrCtrl.get_var()
        • UrCtrl.get_version()
        • UrCtrl.get_work()
        • UrCtrl.give_arm()
        • UrCtrl.halt()
        • UrCtrl.hand()
        • UrCtrl.hand_close()
        • UrCtrl.hand_open()
        • UrCtrl.hand_stop()
        • UrCtrl.init_hand()
        • UrCtrl.is_connected()
        • UrCtrl.is_empty_position()
        • UrCtrl.is_running()
        • UrCtrl.j2p()
        • UrCtrl.jspeed
        • UrCtrl.lock
        • UrCtrl.motion_complete()
        • UrCtrl.motion_mode
        • UrCtrl.move()
        • UrCtrl.p2j()
        • UrCtrl.path_blend
        • UrCtrl.print_error()
        • UrCtrl.print_error_info()
        • UrCtrl.reconnect()
        • UrCtrl.release_arm()
        • UrCtrl.remove_extension()
        • UrCtrl.reset_error()
        • UrCtrl.rotate()
        • UrCtrl.run_script()
        • UrCtrl.servo_on
        • UrCtrl.set_F()
        • UrCtrl.set_I()
        • UrCtrl.set_IO()
        • UrCtrl.set_J()
        • UrCtrl.set_P()
        • UrCtrl.set_accel()
        • UrCtrl.set_check_ik()
        • UrCtrl.set_coord_type()
        • UrCtrl.set_decel()
        • UrCtrl.set_extaccel()
        • UrCtrl.set_extdecel()
        • UrCtrl.set_extspeed()
        • UrCtrl.set_jspeed()
        • UrCtrl.set_motion_mode()
        • UrCtrl.set_path_blend()
        • UrCtrl.set_speed()
        • UrCtrl.set_tool()
        • UrCtrl.set_tool_define()
        • UrCtrl.set_var()
        • UrCtrl.set_work()
        • UrCtrl.speed
        • UrCtrl.start_log()
        • UrCtrl.start_servo_log()
        • UrCtrl.state()
        • UrCtrl.stop()
        • UrCtrl.stop_log()
        • UrCtrl.stop_servo_log()
        • UrCtrl.take_arm()
        • UrCtrl.task
        • UrCtrl.task_state
        • UrCtrl.task_stop()
        • UrCtrl.teach()
        • UrCtrl.turn_off_motor()
        • UrCtrl.turn_on_motor()
        • UrCtrl.wait_for_complete()
      • Subpackages
        • ur.hand package
        • ur.server_fastapi package
      • Submodules
      • ur.config module
        • Config
      • ur.robot_var_manager module
        • RobotVarManager
      • ur.server module
      • ur.ur_ctrl module
        • UrCtrl
      • ur.ur_error module
        • UrError
        • UrPrimaryErrorReceiver
      • ur.ur_rtde module
        • UrRtde
      • ur.ur_util module
        • MotionMode
UR
  • Overview: module code

All modules for which code is available

  • ur.config
  • ur.hand.robotiq_hand
  • ur.hand.robotiq_hand_interface
  • ur.robot_var_manager
  • ur.ur_ctrl
  • ur.ur_error
  • ur.ur_rtde
  • ur.ur_util

© Copyright .

Built with Sphinx using a theme provided by Read the Docs.