From 4da9e5886abe75f46834f3d92ccd7e8b8f4e2eff Mon Sep 17 00:00:00 2001 From: ggh <0380089@gmail.com> Date: Sat, 26 Aug 2023 15:52:51 +0200 Subject: [PATCH] yac servo ctrl position update --- vision_opencv | 1 - vision_opencv.zip | Bin 0 -> 121001 bytes yacyac_core/bt_xml/bt_yac_supply.xml | 6 +- .../yacyac_servo/action_servo_ctrl.py | 212 ++++++++++++------ yacyac_servo/yacyac_servo/servo_ctrl.py | 146 ++++++------ 5 files changed, 208 insertions(+), 157 deletions(-) delete mode 160000 vision_opencv create mode 100644 vision_opencv.zip diff --git a/vision_opencv b/vision_opencv deleted file mode 160000 index 066793a..0000000 --- a/vision_opencv +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 066793a23e5d06d76c78ca3d69824a501c3554fd diff --git a/vision_opencv.zip b/vision_opencv.zip new file mode 100644 index 0000000000000000000000000000000000000000..333db867363d4ad039e3bd8b686d6389e77d221a GIT binary patch literal 121001 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

foc2MrtgjZiO`2t9=N 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 - + - - + + diff --git a/yacyac_servo/yacyac_servo/action_servo_ctrl.py b/yacyac_servo/yacyac_servo/action_servo_ctrl.py index 566aca5..92b15d0 100644 --- a/yacyac_servo/yacyac_servo/action_servo_ctrl.py +++ b/yacyac_servo/yacyac_servo/action_servo_ctrl.py @@ -10,6 +10,7 @@ from yacyac_interface.action import Supply as SupplyAction from dynamixel_sdk_custom_interfaces.msg import SetPosition from dynamixel_sdk_custom_interfaces.srv import GetPosition +from std_msgs.msg import Int32 # 목적 포지션을 받으면 그에 맞게 서보를 움직임 # 목적 포지션에 도달하면 도착 메시지를 보냄 @@ -26,14 +27,29 @@ def __init__(self): # 현재 포지션을 서비스 클라이언트로 받아옴 self.cli = self.create_client(GetPosition, "/get_position") + + # 현재 알약 배출개수 펍 + self.pub_yac = self.create_publisher(Int32, "/yacyac/current_yac", 10) + self.cmd_pose_id = Servo() self.cnt = 0 + + self.current_yac = 0 + + + # 큰약 + # 목적 포지션 list + # 1023 to 300 degree + # 시계방향으로 돌아가는 포지션 리스트 + self.big_position_set = [0, 164, 328, 492, 656, 820] + + # 작은약 # 목적 포지션 list - # 1023 to 360 degree + # 1023 to 300 degree # 시계방향으로 돌아가는 포지션 리스트 - self.cw_position_set = [0, 164, 328, 492, 656, 820] + self.small_position_set = [60, 224, 388, 552, 716, 880] # 반 시계방향으로 돌아가는 포지션 리스트 - self.ccw_position_set = [915,751, 587,423, 259] + # 방향 flag self.position_flag = [0, 0, 0, 0, 0, 0, 0, 0, 0] # 현재 포지션 index @@ -45,11 +61,11 @@ def __init__(self): self.yac_cnt = 0 print ("init positioning...") - # for i in range(8): - # # 근처 포지션으로 이동합니다. - # self.init_position(i) - # # 원점 포지션으로 이동합니다. - # # self.reset_position(i) + for i in range(8): + # 근처 포지션으로 이동합니다. + self.init_position(i) + # 원점 포지션으로 이동합니다. + # self.reset_position(i) print ("init positioning done!!!") @@ -64,7 +80,7 @@ def execute_callback(self, goal_handle): for idx in range(len(supply_list)): if supply_list[idx] != 0: self.control_position(idx, supply_list[idx], goal_handle) - + self.current_yac = 0 goal_handle.succeed() result = SupplyAction.Result() @@ -77,7 +93,6 @@ def execute_callback(self, goal_handle): - def init_position(self, id): req = GetPosition.Request() req.id = id @@ -97,45 +112,54 @@ def init_position(self, id): cmd_pose = SetPosition() cmd_pose.id = id - flag = 0 - for i, val in enumerate(self.cw_position_set): - diff = abs(response.position - val) - if diff < min_diff: - min_diff = diff - closest_idx = i - cmd_pose.position = self.cw_position_set[closest_idx] - flag = 1 - for i, val in enumerate(self.ccw_position_set): - diff = abs(response.position - val) - if diff < min_diff: - min_diff = diff - closest_idx = i - cmd_pose.position = self.ccw_position_set[closest_idx] - flag = 0 - if flag == 0: - self.position_flag[id] = 1 - # print("cw") - else: - self.position_flag[id] = 0 + if id < 2 : + for i, val in enumerate(self.big_position_set): + diff = abs(response.position - val) + if diff < min_diff: + min_diff = diff + closest_idx = i + cmd_pose.position = self.big_position_set[closest_idx] + + if closest_idx > 3: + self.position_flag[id] = 1 + else: + self.position_flag[id] = 0 + # print("ccw") - # 리스트의 요소값과 같은 값이 있으면 그 인덱스를 반환 - if flag: - for i, val in enumerate(self.cw_position_set): + # 리스트의 요소값과 같은 값이 있으면 그 인덱스를 반환 + + for i, val in enumerate(self.big_position_set): if val == cmd_pose.position: - self.position_cnt[id] = i + self.position_cnt[id] = i break - else: - for i, val in enumerate(self.ccw_position_set): + + else : + for i, val in enumerate(self.small_position_set): + diff = abs(response.position - val) + if diff < min_diff: + min_diff = diff + closest_idx = i + cmd_pose.position = self.small_position_set[closest_idx] + + if closest_idx > 3: + self.position_flag[id] = 1 + else: + self.position_flag[id] = 0 + + # print("ccw") + # 리스트의 요소값과 같은 값이 있으면 그 인덱스를 반환 + + for i, val in enumerate(self.small_position_set): if val == cmd_pose.position: - self.position_cnt[id] = i - break + self.position_cnt[id] = i + break + self.pub.publish(cmd_pose) - time.sleep(0.1) + # time.sleep(0.1) else: self.get_logger().info(f"Service call for ID {id} failed") - def control_position(self, id, servo, goal_handle): # 제조할 약의 개수 yac_num = servo @@ -146,6 +170,10 @@ def control_position(self, id, servo, goal_handle): # 역방향 진행 yac_num -= 1 yac_cnt += 1 + self.current_yac += 1 + msg = Int32() + msg.data = self.current_yac + self.pub_yac.publish(msg) # yac_cnt print(id, "번 약 ", servo, "개중 ", yac_cnt, "개 배출중...") feedback_msg = SupplyAction.Feedback() @@ -153,46 +181,85 @@ def control_position(self, id, servo, goal_handle): feedback_msg.partial_sequence.append(self.yac_cnt) goal_handle.publish_feedback(feedback_msg) # self.get_logger().info('Feedback: {0}'.format(feedback_msg.partial_sequence)) - if self.position_flag[id] == 1: - cmd_pose = SetPosition() - self.position_cnt[id] += 1 - if self.position_cnt[id] >= len(self.ccw_position_set): - self.position_cnt[id] = 0 - self.position_flag[id] = 0 - cmd_pose.position = self.cw_position_set[self.position_cnt[id]] - cmd_pose.id = id - self.pub.publish(cmd_pose) - else: - cmd_pose.position = self.ccw_position_set[self.position_cnt[id]] - cmd_pose.id = id - self.pub.publish(cmd_pose) - else : - cmd_pose = SetPosition() - self.position_cnt[id] += 1 - if self.position_cnt[id] >= len(self.cw_position_set): - self.position_cnt[id] = 0 - self.position_flag[id] = 1 - cmd_pose.position = self.ccw_position_set[self.position_cnt[id]] - cmd_pose.id = id - self.pub.publish(cmd_pose) - else: - cmd_pose.position = self.cw_position_set[self.position_cnt[id]] - cmd_pose.id = id - self.pub.publish(cmd_pose) + + # print(id, "번 약 ", servo, "개중 ", yac_cnt, "개 배출중...") + + if id < 2: + print("큰약") + if self.position_flag[id] == 1: + cmd_pose = SetPosition() + self.position_cnt[id] += 1 + if self.position_cnt[id] == len(self.big_position_set): + self.position_cnt[id] = 4 + self.position_flag[id] = 0 + cmd_pose.position = self.big_position_set[self.position_cnt[id]] + cmd_pose.id = id + self.pub.publish(cmd_pose) + else: + cmd_pose.position = self.big_position_set[self.position_cnt[id]] + cmd_pose.id = id + self.pub.publish(cmd_pose) + # print(self.position_cnt) + else : + cmd_pose = SetPosition() + self.position_cnt[id] -= 1 + if self.position_cnt[id] < 0: + self.position_cnt[id] = 1 + self.position_flag[id] = 1 + cmd_pose.position = self.big_position_set[self.position_cnt[id]] + cmd_pose.id = id + self.pub.publish(cmd_pose) + else: + cmd_pose.position = self.big_position_set[self.position_cnt[id]] + cmd_pose.id = id + self.pub.publish(cmd_pose) + # print(self.position_cnt) + + + + else: + print("작은약") + if self.position_flag[id] == 1: + cmd_pose = SetPosition() + self.position_cnt[id] += 1 + if self.position_cnt[id] == len(self.small_position_set): + self.position_cnt[id] = 4 + self.position_flag[id] = 0 + cmd_pose.position = self.small_position_set[self.position_cnt[id]] + cmd_pose.id = id + self.pub.publish(cmd_pose) + else: + cmd_pose.position = self.small_position_set[self.position_cnt[id]] + cmd_pose.id = id + self.pub.publish(cmd_pose) + # print(self.position_cnt) + else : + cmd_pose = SetPosition() + self.position_cnt[id] -= 1 + if self.position_cnt[id] < 0: + self.position_cnt[id] = 1 + self.position_flag[id] = 1 + cmd_pose.position = self.small_position_set[self.position_cnt[id]] + cmd_pose.id = id + self.pub.publish(cmd_pose) + else: + cmd_pose.position = self.small_position_set[self.position_cnt[id]] + cmd_pose.id = id + self.pub.publish(cmd_pose) + # print(self.position_cnt) - - time.sleep(1) - + time.sleep(0.5) print(id, "번 약 배출이 완료되었습니다.") def reset_position(self, id): cmd_pose = SetPosition() cmd_pose.id = id - cmd_pose.position = self.cw_position_set[0] + if id < 2: + cmd_pose.position = self.big_position_set[0] + else: + cmd_pose.position = self.small_position_set[0] self.pub.publish(cmd_pose) - time.sleep(0.1) - @@ -205,7 +272,6 @@ def main(args=None): servo_node.destroy_node() rp.shutdown() - if __name__ == "__main__": print("start servo_node") main() diff --git a/yacyac_servo/yacyac_servo/servo_ctrl.py b/yacyac_servo/yacyac_servo/servo_ctrl.py index 0dd593f..cf39ca2 100644 --- a/yacyac_servo/yacyac_servo/servo_ctrl.py +++ b/yacyac_servo/yacyac_servo/servo_ctrl.py @@ -28,28 +28,26 @@ def __init__(self): # 목적 포지션 list # 1023 to 300 degree # 시계방향으로 돌아가는 포지션 리스트 - self.big_cw_position_set = [0, 164, 328, 492, 656, 820] - # 반 시계방향으로 돌아가는 포지션 리스트 - self.big_ccw_position_set = [915,751, 587,423, 259] - + self.big_position_set = [0, 164, 328, 492, 656, 820] + + # 작은약 # 목적 포지션 list # 1023 to 300 degree # 시계방향으로 돌아가는 포지션 리스트 - self.small_cw_position_set = [0, 164, 328, 492, 656, 820] + self.small_position_set = [60, 224, 388, 552, 716, 880] # 반 시계방향으로 돌아가는 포지션 리스트 - self.small_ccw_position_set = [915,751, 587,423, 259] # 방향 flag self.position_flag = [0, 0, 0, 0, 0, 0, 0, 0, 0] # 현재 포지션 index self.position_cnt = [0, 0, 0, 0, 0, 0, 0, 0, 0] - print ("init positioning...") + print ("init positioasdasning...") for i in range(8): # 근처 포지션으로 이동합니다. - # self.init_position(i) + self.init_position(i) # 원점 포지션으로 이동합니다. - self.reset_position(i) + # self.reset_position(i) print ("init positioning done!!!") @@ -72,71 +70,47 @@ def init_position(self, id): cmd_pose = SetPosition() cmd_pose.id = id - flag = 0 if id < 2 : - for i, val in enumerate(self.big_cw_position_set): + for i, val in enumerate(self.big_position_set): diff = abs(response.position - val) if diff < min_diff: min_diff = diff closest_idx = i - cmd_pose.position = self.big_cw_position_set[closest_idx] - flag = 1 - for i, val in enumerate(self.big_ccw_position_set): - diff = abs(response.position - val) - if diff < min_diff: - min_diff = diff - closest_idx = i - cmd_pose.position = self.big_ccw_position_set[closest_idx] - flag = 0 - if flag == 0: + cmd_pose.position = self.big_position_set[closest_idx] + + if closest_idx > 3: self.position_flag[id] = 1 - # print("cw") else: self.position_flag[id] = 0 - # print("ccw") + + # print("ccw") # 리스트의 요소값과 같은 값이 있으면 그 인덱스를 반환 - if flag: - for i, val in enumerate(self.big_cw_position_set): - if val == cmd_pose.position: - self.position_cnt[id] = i - break - else: - for i, val in enumerate(self.big_ccw_position_set): - if val == cmd_pose.position: - self.position_cnt[id] = i - break + + for i, val in enumerate(self.big_position_set): + if val == cmd_pose.position: + self.position_cnt[id] = i + break + else : - for i, val in enumerate(self.small_cw_position_set): - diff = abs(response.position - val) - if diff < min_diff: - min_diff = diff - closest_idx = i - cmd_pose.position = self.small_cw_position_set[closest_idx] - flag = 1 - for i, val in enumerate(self.small_ccw_position_set): + for i, val in enumerate(self.small_position_set): diff = abs(response.position - val) if diff < min_diff: min_diff = diff closest_idx = i - cmd_pose.position = self.small_ccw_position_set[closest_idx] - flag = 0 - if flag == 0: + cmd_pose.position = self.small_position_set[closest_idx] + + if closest_idx > 3: self.position_flag[id] = 1 - # print("cw") else: self.position_flag[id] = 0 - # print("ccw") + + # print("ccw") # 리스트의 요소값과 같은 값이 있으면 그 인덱스를 반환 - if flag: - for i, val in enumerate(self.small_cw_position_set): - if val == cmd_pose.position: - self.position_cnt[id] = i - break - else: - for i, val in enumerate(self.small_ccw_position_set): - if val == cmd_pose.position: - self.position_cnt[id] = i - break + + for i, val in enumerate(self.small_position_set): + if val == cmd_pose.position: + self.position_cnt[id] = i + break self.pub.publish(cmd_pose) # time.sleep(0.1) @@ -157,77 +131,89 @@ def control_position(self, id, servo): yac_cnt += 1 # yac_cnt - print(id, "번 약 ", servo, "개중 ", yac_cnt, "개 배출중...") + # print(id, "번 약 ", servo, "개중 ", yac_cnt, "개 배출중...") + if id < 2: + # print("큰약") if self.position_flag[id] == 1: cmd_pose = SetPosition() self.position_cnt[id] += 1 - if self.position_cnt[id] >= len(self.big_ccw_position_set): - self.position_cnt[id] = 0 + if self.position_cnt[id] == len(self.big_position_set): + self.position_cnt[id] = 4 self.position_flag[id] = 0 - cmd_pose.position = self.big_cw_position_set[self.position_cnt[id]] + cmd_pose.position = self.big_position_set[self.position_cnt[id]] cmd_pose.id = id self.pub.publish(cmd_pose) else: - cmd_pose.position = self.big_ccw_position_set[self.position_cnt[id]] + cmd_pose.position = self.big_position_set[self.position_cnt[id]] cmd_pose.id = id self.pub.publish(cmd_pose) + # print(self.position_cnt) else : cmd_pose = SetPosition() - self.position_cnt[id] += 1 - if self.position_cnt[id] >= len(self.big_cw_position_set): - self.position_cnt[id] = 0 + self.position_cnt[id] -= 1 + if self.position_cnt[id] < 0: + self.position_cnt[id] = 1 self.position_flag[id] = 1 - cmd_pose.position = self.big_ccw_position_set[self.position_cnt[id]] + cmd_pose.position = self.big_position_set[self.position_cnt[id]] cmd_pose.id = id self.pub.publish(cmd_pose) else: - cmd_pose.position = self.big_cw_position_set[self.position_cnt[id]] + cmd_pose.position = self.big_position_set[self.position_cnt[id]] cmd_pose.id = id self.pub.publish(cmd_pose) + # print(self.position_cnt) + + + else: + print("작은약") if self.position_flag[id] == 1: cmd_pose = SetPosition() self.position_cnt[id] += 1 - if self.position_cnt[id] >= len(self.small_ccw_position_set): - self.position_cnt[id] = 0 + if self.position_cnt[id] == len(self.small_position_set): + self.position_cnt[id] = 4 self.position_flag[id] = 0 - cmd_pose.position = self.small_cw_position_set[self.position_cnt[id]] + cmd_pose.position = self.small_position_set[self.position_cnt[id]] cmd_pose.id = id self.pub.publish(cmd_pose) else: - cmd_pose.position = self.small_ccw_position_set[self.position_cnt[id]] + cmd_pose.position = self.small_position_set[self.position_cnt[id]] cmd_pose.id = id self.pub.publish(cmd_pose) + # print(self.position_cnt) else : cmd_pose = SetPosition() - self.position_cnt[id] += 1 - if self.position_cnt[id] >= len(self.small_cw_position_set): - self.position_cnt[id] = 0 + self.position_cnt[id] -= 1 + if self.position_cnt[id] < 0: + self.position_cnt[id] = 1 self.position_flag[id] = 1 - cmd_pose.position = self.small_ccw_position_set[self.position_cnt[id]] + cmd_pose.position = self.small_position_set[self.position_cnt[id]] cmd_pose.id = id self.pub.publish(cmd_pose) else: - cmd_pose.position = self.small_cw_position_set[self.position_cnt[id]] + cmd_pose.position = self.small_position_set[self.position_cnt[id]] cmd_pose.id = id self.pub.publish(cmd_pose) - + # print(self.position_cnt) # time.sleep(1) - print(id, "번 약 배출이 완료되었습니다.") + # print(id, "번 약 배출이 완료되었습니다.") def reset_position(self, id): cmd_pose = SetPosition() cmd_pose.id = id - cmd_pose.position = self.big_cw_position_set[0] + if id < 2: + cmd_pose.position = self.big_position_set[0] + else: + cmd_pose.position = self.small_position_set[0] self.pub.publish(cmd_pose) # time.sleep(0.1) def callback_yac(self, msg): servo_list = list(msg.servo_list) - print("start position control") - print("list : ", servo_list) + # print("start position control") + # print("list : ", servo_list) for idx in range(len(servo_list)): if servo_list[idx] != 0: self.control_position(idx, servo_list[idx])