Skip to content

Commit dcf44df

Browse files
committed
Small fixes
1 parent dfe4ecc commit dcf44df

File tree

4 files changed

+20
-17
lines changed

4 files changed

+20
-17
lines changed

robot/controller.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -390,6 +390,7 @@ def __init__(self, robot_idx):
390390
# Arm setup
391391
self.arm = KinovaArm()
392392
self.arm.clear_faults()
393+
self.arm.set_high_level_servoing()
393394
self.arm.set_joint_limits(4 * [80] + 3 * [70], [297] + 6 * [150])
394395
self.arm.set_max_twist_linear_limit()
395396
self.arm.move_angular([self.arm.get_heading(), 340, 180, 214, 0, 320, 90])

robot/kinova.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,13 @@ def retract(self, blocking=True):
9191
def zero(self, blocking=True):
9292
self._reference_action('Zero', blocking=blocking)
9393

94-
def move_angular(self, joint_positions, blocking=True):
95-
assert len(joint_positions) == self.num_joints
94+
def move_angular(self, joint_angles, blocking=True):
95+
assert len(joint_angles) == self.num_joints
9696
action = Base_pb2.Action()
9797
for i in range(self.num_joints):
9898
joint_angle = action.reach_joint_angles.joint_angles.joint_angles.add()
9999
joint_angle.joint_identifier = i
100-
joint_angle.value = joint_positions[i]
100+
joint_angle.value = joint_angles[i]
101101
self.end_or_abort_event.clear()
102102
self.base.ExecuteAction(action)
103103
if blocking:
@@ -340,12 +340,12 @@ def trapezoidal_motion_profile(pos_diff, max_vel=60, max_accel=80, max_decel=80,
340340

341341
return t, pos
342342

343-
def execute(self, joint_positions, max_vel=60, max_accel=80, max_decel=80, gripper_release_ms=600):
344-
assert len(joint_positions) == self.num_joints
343+
def execute(self, joint_angles, max_vel=60, max_accel=80, max_decel=80, gripper_release_ms=600):
344+
assert len(joint_angles) == self.num_joints
345345

346346
# Compute motion profile
347347
self.base_feedback = self.base_cyclic.RefreshFeedback()
348-
pos_diffs = [((joint_positions[i] - self.base_feedback.actuators[i].position) + 180) % 360 - 180 for i in range(self.num_joints)]
348+
pos_diffs = [((joint_angles[i] - self.base_feedback.actuators[i].position) + 180) % 360 - 180 for i in range(self.num_joints)]
349349
max_pos_diff = max(abs(pos_diff) for pos_diff in pos_diffs)
350350
_, pos = self.trapezoidal_motion_profile(max_pos_diff, max_vel=max_vel, max_accel=max_accel, max_decel=max_decel)
351351
self.trajectory = np.zeros((pos.shape[0], self.num_joints), dtype=np.float32)

server/demo.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ def filter_detection_output(self, output):
152152
ignore_boxes.append([min_xy[0], min_xy[1], max_xy[0], max_xy[1]])
153153

154154
# Receptacles
155-
# Note: Due to camera perspective distortion, receptacles should be placed near edges of overhead camera image frame
155+
# Note: Due to camera perspective distortion, receptacles should not be placed near edges of overhead camera image frame
156156
for receptacle in self.receptacles.values():
157157
pos_x, pos_y = receptacle['position']
158158
dim_x, dim_y = receptacle['dimensions']
@@ -316,7 +316,7 @@ def run(self):
316316
autonomous_running = False
317317
detection_image_sent = False
318318
last_time = time.time()
319-
controller_state_time = None
319+
controller_start_time = None
320320
while True:
321321
step_time = time.time() - last_time
322322
if step_time > 0.5: # 2 Hz
@@ -325,8 +325,8 @@ def run(self):
325325

326326
# Update robot state
327327
controller_data = controller.get_controller_data() # 30 ms
328-
if controller_data['start_time'] != controller_state_time: # Controller was restarted
329-
controller_state_time = controller_data['start_time']
328+
if controller_data['start_time'] != controller_start_time: # Controller was restarted
329+
controller_start_time = controller_data['start_time']
330330
autonomous_running = False
331331
if controller_data['state'] == 'moving':
332332
self.robot_state = 'moving'

server/object_detector_server.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,14 @@ def __init__(self, hostname='0.0.0.0', port=6003, debug=False):
8787
self.listener = Listener((hostname, port), authkey=CONN_AUTHKEY)
8888
self.lock = Lock()
8989

90+
# Set up image directory
91+
today = datetime.now().strftime('%Y-%m-%d')
92+
self.image_dir = Path(f'images/{today}')
93+
if not self.image_dir.exists():
94+
self.image_dir.mkdir(parents=True)
95+
if sum(1 for _ in self.image_dir.iterdir()) > 1000:
96+
input(f'Warning: {self.image_dir} contains over 1000 files. Press <Enter> to continue:\n')
97+
9098
# Set up ViLD object detector
9199
self.detector = VildDetector()
92100

@@ -102,13 +110,7 @@ def __init__(self, hostname='0.0.0.0', port=6003, debug=False):
102110

103111
def forward(self, request):
104112
# Save JPEG image to file
105-
today = datetime.now().strftime('%Y-%m-%d')
106-
image_dir = Path(f'images/{today}')
107-
if not image_dir.exists():
108-
image_dir.mkdir(parents=True)
109-
if sum(1 for _ in image_dir.iterdir()) > 1000:
110-
print(f'Warning: {image_dir} contains over 1000 files')
111-
image_path = str(image_dir / f'image-{int(10 * time.time()) % 100000000}.jpg')
113+
image_path = str(self.image_dir / f'image-{int(10 * time.time()) % 100000000}.jpg')
112114
with open(image_path, 'wb') as f:
113115
f.write(request['encoded_image'])
114116

0 commit comments

Comments
 (0)