Skip to content

Commit aac775c

Browse files
committed
added argparser, can specify backend and robot model from command line
1 parent 922c982 commit aac775c

File tree

1 file changed

+40
-12
lines changed

1 file changed

+40
-12
lines changed

examples/puma_jtraj.py

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,46 @@
11
import roboticstoolbox as rtb
22
from spatialmath import * # lgtm [py/polluting-import]
3+
import argparse
4+
import sys
35

6+
parser = argparse.ArgumentParser(description="Puma trajectory demo")
7+
parser.add_argument('--backend', '-b', dest='backend', default='pyplot',
8+
help='choose backend: pyplot (default), swift, vpython', action='store')
9+
parser.add_argument('--model', '-m', dest='model', default='DH', action='store',
10+
help='choose model: DH (default), URDF')
11+
args = parser.parse_args()
12+
13+
if args.model.lower() == 'dh':
14+
robot = rtb.models.DH.Puma560()
15+
elif args.model.lower() == 'urdf':
16+
robot = rtb.models.URDF.Puma560()
17+
else:
18+
raise ValueError('unknown model')
419

5-
#robot = rtb.models.URDF.Puma560()
6-
robot = rtb.models.DH.Puma560()
720
print(robot)
8-
print(robot.fkine(robot.qz))
9-
# tw, T0 = p560.twists(p560.qn)
10-
# print(tw)
21+
1122
qt = rtb.tools.trajectory.jtraj(robot.qz, robot.qr, 200)
12-
robot.plot(qt.q, dt=0.1, block=True) #movie='puma_sitting.gif')
13-
#swift = rtb.backend.Swift()
14-
#swift.launch()
15-
#swift.add(robot)
16-
#for q in qt.q:
17-
#robot.q = q
18-
#swift.step()
23+
24+
if args.backend.lower() == 'pyplot':
25+
if args.model.lower() != 'dh':
26+
print('PyPlot only supports DH models for now')
27+
sys.exit(1)
28+
backend = rtb.backends.PyPlot()
29+
elif args.backend.lower() == 'vpython':
30+
if args.model.lower() != 'dh':
31+
print('VPython only supports DH models for now')
32+
sys.exit(1)
33+
backend = rtb.backends.VPython()
34+
elif args.backend.lower() == 'swift':
35+
if args.model.lower() != 'urdf':
36+
print('Swift only supports URDF models for now')
37+
sys.exit(1)
38+
backend = rtb.backends.Swift()
39+
else:
40+
raise ValueError('unknown backend')
41+
42+
backend.launch()
43+
backend.add(robot)
44+
for q in qt.q:
45+
robot.q = q
46+
backend.step(0.1)

0 commit comments

Comments
 (0)