Skip to content

Commit 786753f

Browse files
committed
swift simulation V2
1 parent 9e47b10 commit 786753f

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

tests/SwiftTest.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import swift
2+
import roboticstoolbox as rtb
3+
import spatialmath as sm
4+
import numpy as np
5+
import time
6+
7+
8+
class RobotControl():
9+
def __init__(self, dt, env, robot):
10+
self.dt = dt
11+
self.env = env
12+
self.robot = robot
13+
self.env.add(self.robot)
14+
15+
16+
def move(self, positionX, positionY, positionZ, numberOfSteps):
17+
robotJointsStates = np.zeros(6)
18+
for joint in range(5):
19+
robotJointsStates[joint] = self.robot.q[joint]
20+
21+
Tep = sm.SE3.Trans(positionX, positionY, positionZ) * sm.SE3.OA([1, 0,1], [0, 0, -1])
22+
sol = self.robot.ik_LM(Tep) # solve IK
23+
24+
qt = rtb.jtraj(robotJointsStates, sol[0], numberOfSteps)
25+
#print(qt.q[numberOfSteps-1])
26+
for steps in range(numberOfSteps):
27+
self.robot.q = qt.q[steps]
28+
self.env.step(self.dt)
29+
time.sleep(self.dt)
30+
31+
32+
def pause(self, second):
33+
for i in range(int(second/(self.dt))):
34+
self.env.step(self.dt)
35+
time.sleep(self.dt)
36+
37+
38+
if __name__ == "__main__": # pragma nocover
39+
40+
env = swift.Swift()
41+
env.launch(realtime = True)
42+
43+
lite = rtb.models.Lite6()
44+
lite.q = lite.qr
45+
46+
rob = RobotControl(0.1, env, lite)
47+
48+
positionX = [0.15, 0.15, 0.35]
49+
positionY = [-0.2, -0.2, 0.2]
50+
positionZ = [0.05, 0.4, 0.2]
51+
step = [50, 50, 50]
52+
53+
for position in range(len(step)):
54+
rob.move(positionX[position], positionY[position], positionZ[position], step[position])
55+
rob.pause(1)
56+
57+
rob.pause(10)
58+
59+
60+

0 commit comments

Comments
 (0)