Skip to content

Commit a3e58d1

Browse files
committed
add drag support gripper
1 parent 43de4f6 commit a3e58d1

File tree

1 file changed

+25
-14
lines changed

1 file changed

+25
-14
lines changed

demo/drag_trial_teaching.py

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)