102 lines
2.6 KiB
Python
102 lines
2.6 KiB
Python
"""
|
|
Testing script that runs many of the urx methods, while attempting to keep robot pose around its starting pose
|
|
"""
|
|
|
|
from math import pi
|
|
import time
|
|
import sys
|
|
|
|
import urx
|
|
import logging
|
|
|
|
if sys.version_info[0] < 3: # support python v2
|
|
input = raw_input
|
|
|
|
def wait():
|
|
if do_wait:
|
|
input()
|
|
|
|
if __name__ == "__main__":
|
|
logging.basicConfig(level=logging.WARN)
|
|
|
|
do_wait = True
|
|
if len(sys.argv) > 1:
|
|
do_wait = False
|
|
|
|
#rob = urx.Robot("192.168.1.6")
|
|
rob = urx.Robot("localhost")
|
|
rob.set_tcp((0, 0, 0, 0, 0, 0))
|
|
rob.set_payload(0.5, (0, 0, 0))
|
|
try:
|
|
l = 0.05
|
|
v = 0.05
|
|
a = 0.3
|
|
r = 0.01
|
|
print("Digital out 0 and 1 are: ", rob.get_digital_out(0), rob.get_digital_out(1))
|
|
print("Analog inputs are: ", rob.get_analog_inputs())
|
|
initj = rob.getj()
|
|
print("Initial joint configuration is ", initj)
|
|
t = rob.get_pose()
|
|
print("Transformation from base to tcp is: ", t)
|
|
|
|
print("Translating in x")
|
|
wait()
|
|
rob.translate((l, 0, 0), acc=a, vel=v)
|
|
pose = rob.getl()
|
|
print("robot tcp is at: ", pose)
|
|
|
|
print("moving in z")
|
|
wait()
|
|
pose[2] += l
|
|
rob.movel(pose, acc=a, vel=v, wait=False)
|
|
print("Waiting for end move")
|
|
rob.wait_for_move(0, pose)
|
|
|
|
print("Moving through several points with a radius")
|
|
wait()
|
|
pose[0] -= l
|
|
p1 = pose[:]
|
|
pose[2] -= l
|
|
p2 = pose[:]
|
|
rob.movels([p1, p2], vel=v, acc=a, radius=r)
|
|
|
|
print("rotate tcp around around base z ")
|
|
wait()
|
|
t.orient.rotate_zb(pi / 8)
|
|
rob.set_pose(t, vel=v, acc=a)
|
|
|
|
print("moving in tool z")
|
|
wait()
|
|
rob.translate_tool((0, 0, l), vel=v, acc=a)
|
|
|
|
print("moving in tool -z using speed command")
|
|
wait()
|
|
rob.speedl_tool((0, 0, -v, 0, 0, 0), acc=a, min_time=3)
|
|
print("Waiting 2 seconds2")
|
|
time.sleep(2)
|
|
print("stop robot")
|
|
rob.stopj()
|
|
|
|
print("Test movep, it will fail on older controllers")
|
|
wait()
|
|
init = rob.get_pose()
|
|
pose = init.copy()
|
|
for _ in range(3):
|
|
pose.pos[0] += l
|
|
rob.movep(pose, acc=a, vel=v, radius=r)
|
|
rob.movep(init, acc=a, vel=v, radius=r) # back to start
|
|
|
|
print("Test movec")
|
|
wait()
|
|
via = init.copy()
|
|
via.pos[0] += l
|
|
to = via.copy()
|
|
to.pos[1] += l
|
|
rob.movec(via, to, acc=a, vel=v, radius=r)
|
|
|
|
print("Sending robot back to original position")
|
|
rob.movej(initj, acc=0.8, vel=0.2)
|
|
|
|
finally:
|
|
rob.close()
|