1 from joy import *
2
5 Plan.__init__(self,*arg,**kw)
6 r = self.app.robot.at
7 self.seg = [r.arm1, r.arm3, r.arm4, r.arm5]
8 self.grip = r.grip
9
12
18
20 oncePer = self.app.onceEvery(0.5)
21 while True:
22 yield
23
24 sf = self.app.sf
25 bend = sf.getValue('joy0axis0')
26 skew = sf.getValue('joy0axis1')
27 wrist = sf.getValue('joy0axis4')
28 grip = abs(sf.getValue('joy0axis3'))
29
30
31 ang = [(bend+skew*k)*self.app.cfg.armGain for k in xrange(-len(self.seg)/2,len(self.seg)/2+1)]
32
33 for mod,pos in zip(self.seg[:-1],ang[:-1]):
34 mod.set_pos(pos)
35
36 w = ang[-1]+wrist*self.app.cfg.wristGain
37 self.seg[-1].set_pos(w)
38
39 self.grip.set_pos(grip*self.app.cfg.gripGain)
40
41 if oncePer():
42 progress("Arm: bend %6f skew %6f wrist %6f grip %6f"
43 % (bend,skew,wrist,grip))
44
47 cfg = dict(
48 armGain = 50,
49 gripGain = 8500,
50 wristGain = 50,
51 )
52 JoyApp.__init__(self,robot=robot,cfg=cfg,*arg,**kw)
53
63
65 if evt.type == JOYAXISMOTION:
66
67 self.sf.push(evt)
68
69
70 elif evt.type==JOYBUTTONDOWN and evt.joy==0 and evt.button==0:
71 self.ma.stop()
72 elif evt.type==JOYBUTTONUP and evt.joy==0 and evt.button==0:
73 self.ma.start()
74
75
76 elif evt.type==CKBOTPOSITION:
77 return
78 JoyApp.onEvent(self,evt)
79
82
83 if __name__=="__main__":
84 app = ArmApp()
85 app.run()
86