|
4 | 4 | """ |
5 | 5 |
|
6 | 6 | import swift |
7 | | -import roboticstoolbox as rp |
| 7 | +import roboticstoolbox as rtb |
8 | 8 | import spatialmath as sm |
9 | 9 | import spatialgeometry as sg |
10 | 10 | import numpy as np |
11 | 11 |
|
12 | 12 | env = swift.Swift() |
13 | 13 | env.launch(realtime=True) |
14 | 14 |
|
15 | | -r = rp.models.YuMi() |
| 15 | +r = rtb.models.YuMi() |
16 | 16 | env.add(r) |
17 | 17 |
|
18 | 18 | lTep = ( |
|
49 | 49 | env.add(l_frame) |
50 | 50 | env.add(r_frame) |
51 | 51 |
|
52 | | -l_path, l_n, _ = r.get_path(end=r.grippers[0]) |
53 | | -r_path, r_n, _ = r.get_path(end=r.grippers[1]) |
54 | 52 |
|
55 | | -# Inner list comprehension gets a list jindicies from the links in l_path |
56 | | -# Outer list comprehension removes None's from the list (a None kindex means |
57 | | -# the link is static) |
58 | | -l_jindex = [i for i in [link.jindex for link in l_path] if i] |
59 | | -r_jindex = [i for i in [link.jindex for link in r_path] if i is not None] |
| 53 | +# Construct an ETS for the left and right arms |
| 54 | +la = r.ets(end=r.grippers[0]) |
| 55 | +ra = r.ets(end=r.grippers[1]) |
60 | 56 |
|
61 | 57 | arrivedl = False |
62 | 58 | arrivedr = False |
|
67 | 63 |
|
68 | 64 | while not arrivedl or not arrivedr: |
69 | 65 |
|
70 | | - vl, arrivedl = rp.p_servo( |
71 | | - r.fkine(r.q, end=r.grippers[0]), lTep, gain=gain, threshold=0.001 |
72 | | - ) |
73 | | - vr, arrivedr = rp.p_servo( |
74 | | - r.fkine(r.q, end=r.grippers[1]), rTep, gain=gain, threshold=0.001 |
75 | | - ) |
| 66 | + vl, arrivedl = rtb.p_servo(la.fkine(r.q), lTep, gain=gain, threshold=0.001) |
| 67 | + vr, arrivedr = rtb.p_servo(ra.fkine(r.q), rTep, gain=gain, threshold=0.001) |
76 | 68 |
|
77 | | - r.qd[l_jindex] = np.linalg.pinv(r.jacob0(r.q, end=r.grippers[0])) @ vl |
78 | | - r.qd[r_jindex] = np.linalg.pinv(r.jacob0(r.q, end=r.grippers[1])) @ vr |
| 69 | + r.qd[la.jindices] = np.linalg.pinv(la.jacobe(r.q)) @ vl |
| 70 | + r.qd[ra.jindices] = np.linalg.pinv(ra.jacobe(r.q)) @ vr |
79 | 71 |
|
80 | | - l_frame.base = r.fkine(r.q, end=r.grippers[0]) |
81 | | - r_frame.base = r.fkine(r.q, end=r.grippers[1]) |
| 72 | + l_frame.T = la.fkine(r.q) |
| 73 | + r_frame.T = ra.fkine(r.q) |
82 | 74 |
|
83 | 75 | env.step(dt) |
84 | 76 |
|
|
0 commit comments