@@ -80,19 +80,25 @@ def __init__(self, mycobot) -> None:
8080 self .record_list = []
8181 self .record_t = None
8282 self .play_t = None
83+ self .path = os .path .dirname (os .path .abspath (__file__ )) + "/record.txt"
8384
8485 def record (self ):
8586 self .record_list = []
8687 self .recording = True
87- self .mc .set_fresh_mode (0 )
88+ # self.mc.set_fresh_mode(0)
8889 def _record ():
89- start_t = time . time ()
90+
9091
9192 while self .recording :
93+ start_t = time .time ()
9294 angles = self .mc .get_encoders ()
95+ speeds = self .mc .get_servo_speeds ()
96+ gripper_value = self .mc .get_encoder (7 )
97+ interval_time = time .time () - start_t
98+ #print(angles)
9399 if angles :
94- self .record_list .append (angles )
95- time .sleep (0.1 )
100+ self .record_list .append ([ angles , speeds , gripper_value , interval_time ] )
101+ # time.sleep(0.1)
96102 print ("\r {}" .format (time .time () - start_t ), end = "" )
97103
98104 self .echo ("Start recording." )
@@ -107,10 +113,14 @@ def stop_record(self):
107113
108114 def play (self ):
109115 self .echo ("Start play" )
116+ i = 0
110117 for angles in self .record_list :
111- # print(angles)
112- self .mc .set_encoders (angles , 80 )
113- time .sleep (0.1 )
118+ #print(angles)
119+ self .mc .set_encoders_drag (angles [0 ],angles [1 ])
120+ self .mc .set_encoder (7 , angles [2 ])
121+ if i == 0 :
122+ time .sleep (3 )
123+ time .sleep (angles [- 1 ])
114124 self .echo ("Finish play" )
115125
116126 def loop_play (self ):
@@ -122,8 +132,11 @@ def _loop():
122132 while self .playing :
123133 idx_ = i % len_
124134 i += 1
125- self .mc .set_encoders (self .record_list [idx_ ], 80 )
126- time .sleep (0.1 )
135+ self .mc .set_encoders_drag (self .record_list [idx_ ][0 ],self .record_list [idx_ ][1 ])
136+ self .mc .set_encoder (7 , self .record_list [idx_ ])
137+ if idx_ == 0 :
138+ time .sleep (3 )
139+ time .sleep (self .record_list [idx_ ][- 1 ])
127140
128141 self .echo ("Start loop play." )
129142 self .play_t = threading .Thread (target = _loop , daemon = True )
@@ -139,14 +152,12 @@ def save_to_local(self):
139152 if not self .record_list :
140153 self .echo ("No data should save." )
141154 return
142-
143- with open (os .path .dirname (__file__ ) + "/record.txt" , "w" ) as f :
155+ with open (self .path , "w" ) as f :
144156 json .dump (self .record_list , f , indent = 2 )
145- self .echo ("save dir: {}" .format (os .path . dirname ( __file__ ) ))
157+ self .echo ("save dir: {}\n " .format (self .path ))
146158
147159 def load_from_local (self ):
148-
149- with open (os .path .dirname (__file__ ) + "/record.txt" , "r" ) as f :
160+ with open (self .path , "r" ) as f :
150161 try :
151162 data = json .load (f )
152163 self .record_list = data
0 commit comments