Examples

Generate URScript

import math

from ur_py_ctl import Motion, move_to_conf, move_to_pose

# rotate joint0 to 45 degrees and the rest to zero moving 10 degrees/s
move_instruction1 = move_to_conf([math.pi / 2, 0, 0, 0, 0, 0], v=math.radians(10))

# move to coordinate .250, .500, .300 in a straight line with blend radius 1 cm
# and 250 mm/s
move_instruction2 = move_to_pose(
    0.25, 0.5, 0.3, 0, 0, 0, mode=Motion.LINEAR, r=0.01, v=0.25
)

print(move_instruction1)
print(move_instruction2)

Send script without feedback

import logging
import socket

import ur_py_ctl.urscript_commands as ur_cmd

TAB = "    "

SERVER_ADRESS = "marius-vikarie.d.control.lth.se"
SERVER_PORT = 30002


def get_script():
    script = "def program():\n"
    script += TAB + ur_cmd.popup("Program starting.") + "\n"

    script += TAB + ur_cmd.set_tcp(0, 0, 0, 0, 0, 0) + "\n"

    for i in range(10):

        script += (
            TAB
            + ur_cmd.move_to_pose(
                -0.1 + i * 0.01, 0, 0.3, 0, 0, 0, v=50 / 1000, r=5 / 1000
            )
            + "\n"
        )
        script += TAB + ur_cmd.text_msg(f"Sending command number: {i}") + "\n"

    script += ur_cmd.text_msg("End program")
    script += "end\n\n"
    script += "program()\n"

    return script.encode()


def send_script():

    send_socket = socket.create_connection((SERVER_ADRESS, SERVER_PORT), timeout=2)
    send_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

    script = get_script()

    # send file
    send_socket.send(script)

    send_socket.close()

    logging.debug("File sent")


if __name__ == "__main__":
    send_script()

Send script with feedback

Note

TODO: Make better version of old send_file.py