add tests scripts
This commit is contained in:
commit
a4c0a0d30e
4 changed files with 151 additions and 0 deletions
29
tests/rtde_servojexample.py
Normal file
29
tests/rtde_servojexample.py
Normal file
|
@ -0,0 +1,29 @@
|
|||
import rtde_control
|
||||
import time
|
||||
|
||||
rtde_c = rtde_control.RTDEControlInterface("192.168.1.101")
|
||||
|
||||
# Parameters
|
||||
velocity = 0.1 #0.5
|
||||
acceleration = 0.1 #0.5
|
||||
dt = 1.0/500 # 2ms
|
||||
lookahead_time = 0.1
|
||||
gain = 300
|
||||
joint_q = [-1.54, -1.83, -2.28, -0.59, 1.60, 0.023]
|
||||
|
||||
# Move to initial joint position with a regular moveJ
|
||||
rtde_c.moveJ(joint_q, 0.1, 0.1)
|
||||
|
||||
# Execute 500Hz control loop for 2 seconds, each cycle is 2ms
|
||||
for i in range(1000):
|
||||
start = time.time()
|
||||
rtde_c.servoJ(joint_q, velocity, acceleration, dt, lookahead_time, gain)
|
||||
joint_q[0] += 0.001
|
||||
joint_q[1] += 0.001
|
||||
end = time.time()
|
||||
duration = end - start
|
||||
if duration < dt:
|
||||
time.sleep(dt - duration)
|
||||
|
||||
rtde_c.servoStop()
|
||||
rtde_c.stopScript()
|
36
tests/rtdetest1.py
Normal file
36
tests/rtdetest1.py
Normal file
|
@ -0,0 +1,36 @@
|
|||
#! /usr/bin/python3
|
||||
import time
|
||||
import socket
|
||||
import math
|
||||
import rtde_control
|
||||
|
||||
import rtde_receive
|
||||
rtde_r = rtde_receive.RTDEReceiveInterface("192.168.1.101")
|
||||
|
||||
|
||||
|
||||
actual_q = rtde_r.getActualQ()
|
||||
print(actual_q)
|
||||
|
||||
print("faehrt")
|
||||
|
||||
|
||||
ycenter=0.2
|
||||
zcenter=0.5
|
||||
c=0
|
||||
|
||||
scale=0.2
|
||||
|
||||
rtde_c = rtde_control.RTDEControlInterface("192.168.1.101")
|
||||
#rtde_c.moveJ([-0.10, -0.5, 0.20, -0.001, 3.12, 0.04], 0.1, 0.1)
|
||||
#rtde_c.moveJ([-1.54, -1.83, -2.28, -0.59, 1.60, 0.023], 0.1, 0.1)
|
||||
rtde_c.moveJ([2.74, -1.45, -1.63, -1.63, 1.57, 4.31],0.1,0.1)
|
||||
rtde_c.moveJ(rtde_c.getInverseKinematics([-0.5,ycenter+math.cos(c)*scale,zcenter+math.sin(c)*scale,0.0,3.14159,0.0]), 0.1,0.1)
|
||||
|
||||
print("gefahren")
|
||||
|
||||
rtde_c.servoStop()
|
||||
rtde_c.stopScript()
|
||||
|
||||
actual_q = rtde_r.getActualQ()
|
||||
print(actual_q)
|
48
tests/servoj_circle.py
Normal file
48
tests/servoj_circle.py
Normal file
|
@ -0,0 +1,48 @@
|
|||
import rtde_control
|
||||
import time
|
||||
import math
|
||||
|
||||
rtde_c = rtde_control.RTDEControlInterface("192.168.1.101")
|
||||
|
||||
# Parameters
|
||||
velocity = 0.1 #0.5
|
||||
acceleration = 0.1 #0.5
|
||||
frequency= 100
|
||||
dt = 1.0/frequency # 2ms
|
||||
lookahead_time = 0.1
|
||||
gain = 300
|
||||
joint_q = [-1.54, -1.83, -2.28, -0.59, 1.60, 0.023]
|
||||
|
||||
# Move to initial joint position with a regular moveJ
|
||||
rtde_c.moveJ([2.74, -1.45, -1.63, -1.63, 1.57, 4.31],0.1,0.1)
|
||||
|
||||
duration=10
|
||||
|
||||
ycenter=0.2
|
||||
zcenter=0.5
|
||||
c=0
|
||||
|
||||
scale=0.2
|
||||
|
||||
print("Starting Servo")
|
||||
# Execute 500Hz control loop for 2 seconds, each cycle is 2ms
|
||||
for i in range(frequency*duration):
|
||||
start = time.time()
|
||||
|
||||
c=i/(frequency*duration) * 2 *3.1415 * 4
|
||||
c%= (2*3.1415)
|
||||
|
||||
joint_q=rtde_c.getInverseKinematics([-0.5,ycenter+math.cos(c)*scale,zcenter+math.sin(c)*scale,0.0,3.14159,0.0])
|
||||
#print(joint_q)
|
||||
rtde_c.servoJ(joint_q, velocity, acceleration, dt, lookahead_time, gain)
|
||||
|
||||
end = time.time()
|
||||
stepduration = end - start
|
||||
|
||||
if stepduration < dt:
|
||||
time.sleep(dt - stepduration)
|
||||
|
||||
print("Finished")
|
||||
|
||||
rtde_c.servoStop()
|
||||
rtde_c.stopScript()
|
38
tests/socket1.py
Normal file
38
tests/socket1.py
Normal file
|
@ -0,0 +1,38 @@
|
|||
#! /usr/bin/python3
|
||||
import time
|
||||
import socket
|
||||
import math
|
||||
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
host ="192.168.1.101"
|
||||
port =30002
|
||||
s.connect((host,port))
|
||||
|
||||
|
||||
c=0
|
||||
ycenter=0.2
|
||||
zcenter=0.5
|
||||
|
||||
scale=0.2
|
||||
|
||||
frequency=20
|
||||
lookahead_time= 0.05 # range [0.03,0.2]
|
||||
servo_t = 1.0/frequency*2 + lookahead_time
|
||||
gain = 100 #range [100,2000]
|
||||
|
||||
last_send = 0
|
||||
while True:
|
||||
|
||||
if time.time()>=last_send + (1.0/frequency):
|
||||
last_send=time.time()
|
||||
#text="movel(p[-0.5,"+str(ycenter+math.cos(c)*scale)+","+str(zcenter+math.sin(c)*scale)+",0.0,3.14159,0.0], a=1.2, v=0.1, t=0.2, r=0.02)\n"
|
||||
#text="movep(p[-0.5,"+str(ycenter+math.cos(c)*scale)+","+str(zcenter+math.sin(c)*scale)+",0.0,3.14159,0.0], a=0.5, v=0.1, r=0.05)\n"
|
||||
text="servoj(get_inverse_kin(p[-0.5,"+str(ycenter+math.cos(c)*scale)+","+str(zcenter+math.sin(c)*scale)+",0.0,3.14159,0.0]), t="+str(servo_t)+", lookahead_time="+str(lookahead_time)+", gain="+str(gain)+")\n"
|
||||
s.send(text.encode())
|
||||
print(text)
|
||||
|
||||
#time.sleep(1.0/frequency)
|
||||
c+=0.1
|
||||
c%=2*3.1415
|
||||
|
||||
s.close ()
|
Loading…
Reference in a new issue