update 更新信息填写
This commit is contained in:
@ -196,6 +196,7 @@ class Feeding(QObject):
|
||||
need_origin_signal = Signal(str)
|
||||
take_no_photo_sigal = Signal()
|
||||
update_detect_image = Signal(np.ndarray)
|
||||
log_signal = Signal(int,str)
|
||||
def __init__(self, robotClient: RobotClient):
|
||||
super().__init__()
|
||||
self.feedConfig = None
|
||||
@ -268,13 +269,13 @@ class Feeding(QObject):
|
||||
if self.feedConfig !=None and self.feedConfig.num == 0 and self.is_reverse and self.robotClient.origin_position.compare(real_position):
|
||||
self.feedStatus = FeedStatus.FNone
|
||||
self.is_reverse = False
|
||||
log.log_message(logging.INFO, Constant.str_feed_reverse)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_reverse)
|
||||
|
||||
if self.feedStatus == FeedStatus.FNone or self.pause:
|
||||
return
|
||||
|
||||
elif self.feedStatus == FeedStatus.FCheck:
|
||||
log.log_message(logging.INFO, Constant.str_feed_check)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_check)
|
||||
# 1, 检查是否是三列
|
||||
# 2, 检查是否有人
|
||||
# if self.safe_check_columns() and self.safe_check_person():
|
||||
@ -295,10 +296,10 @@ class Feeding(QObject):
|
||||
self.next_position(self.is_reverse)
|
||||
|
||||
elif self.feedStatus == FeedStatus.FStart:
|
||||
log.log_message(logging.INFO, Constant.str_feed_start)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_start)
|
||||
if not self.robotClient.origin_position.compare(real_position) and not self.is_reverse:
|
||||
# QMessageBox.information(None, "提示", Constant.str_feed_start_error) # Fuck 引起异常
|
||||
log.log_message(logging.ERROR, Constant.str_feed_start_error)
|
||||
self.log_signal.emit(logging.ERROR, Constant.str_feed_start_error)
|
||||
self.need_origin_signal.emit(Constant.str_feed_start_error)
|
||||
self.feedStatus = FeedStatus.FNone
|
||||
return
|
||||
@ -314,7 +315,7 @@ class Feeding(QObject):
|
||||
|
||||
|
||||
elif self.feedStatus == FeedStatus.FMid:
|
||||
log.log_message(logging.INFO, Constant.str_feed_mid)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_mid)
|
||||
feed_pos = self.get_current_position(self.is_reverse)
|
||||
if feed_pos.get_position().compare(real_position):
|
||||
self.next_position(self.is_reverse)
|
||||
@ -322,9 +323,9 @@ class Feeding(QObject):
|
||||
|
||||
|
||||
elif self.feedStatus == FeedStatus.FPhoto:
|
||||
log.log_message(logging.INFO, Constant.str_feed_photo)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_photo)
|
||||
if self.feedConfig.num == 0:
|
||||
log.log_message(logging.INFO, Constant.str_feed_finish)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_finish)
|
||||
self.is_reverse = True
|
||||
self.feed_Mid_Status = FeedMidStatus.FMid_Take
|
||||
self.feedConfig.feedLine.start2take_pos_index = len(self.feedConfig.feedLine.start_to_take) -2
|
||||
@ -341,7 +342,7 @@ class Feeding(QObject):
|
||||
if Constant.Debug:
|
||||
if self.feedConfig.num == 990 and self.onekey:
|
||||
self.feedConfig.num = 0
|
||||
log.log_message(logging.ERROR, Constant.str_feed_finish)
|
||||
self.log_signal.emit(logging.ERROR, Constant.str_feed_finish)
|
||||
return
|
||||
self.detect.detect_status = DetectStatus.DNone
|
||||
self.feedConfig.feedLine.set_take_position(real_position)
|
||||
@ -349,7 +350,7 @@ class Feeding(QObject):
|
||||
return
|
||||
|
||||
if self.detect.detect_position != None:
|
||||
log.log_message(logging.INFO, Constant.str_feed_takePhoto_success)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_takePhoto_success)
|
||||
self.feedConfig.feedLine.set_take_position(self.detect.detect_position)
|
||||
self.update_detect_image.emit(self.detect.detection_image)
|
||||
self.next_position()
|
||||
@ -357,9 +358,9 @@ class Feeding(QObject):
|
||||
else:
|
||||
if self.onekey:
|
||||
self.feedConfig.num = 0
|
||||
log.log_message(logging.ERROR, Constant.str_feed_finish)
|
||||
self.log_signal.emit(logging.ERROR, Constant.str_feed_finish)
|
||||
else:
|
||||
log.log_message(logging.ERROR, Constant.str_feed_takePhoto_fail)
|
||||
self.log_signal.emit(logging.ERROR, Constant.str_feed_takePhoto_fail)
|
||||
self.take_no_photo_sigal.emit()
|
||||
return
|
||||
detect_pos_list = []
|
||||
@ -369,7 +370,7 @@ class Feeding(QObject):
|
||||
if self.cRis_photo.Q(self.error_photo_count >= 5, True):
|
||||
QMessageBox.information(None, "提示", Constant.str_feed_photo_error_msgbox)
|
||||
self.error_photo_count = 0
|
||||
log.log_message(logging.INFO, Constant.str_feed_photo_confirm)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_photo_confirm)
|
||||
|
||||
# TODO 返回初始状态
|
||||
for pos in self.feedConfig.photo_locs:
|
||||
@ -381,7 +382,7 @@ class Feeding(QObject):
|
||||
code, img, xyz, uvw, mng = self.detection.get_position() # 检测结果
|
||||
self.detection_image = img
|
||||
if xyz != None:
|
||||
log.log_message(logging.INFO, Constant.str_feed_takePhoto_success)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_takePhoto_success)
|
||||
# dp = Detection_Position().init_position(*xyz, *uvw)
|
||||
from Trace.handeye_calibration import R_matrix, getPosition
|
||||
rotation = R_matrix(self.robotClient.status_model.world_0,
|
||||
@ -394,9 +395,9 @@ class Feeding(QObject):
|
||||
# 黄老师给我的xyz和法向量
|
||||
target_position, noraml_base = getPosition(*xyz, *uvw, rotation, *mng)
|
||||
detect_pos_list.append(Real_Position().init_position(*target_position[:3], *noraml_base))
|
||||
log.log_message(logging.INFO, Constant.str_feed_takePhoto_success)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_takePhoto_success)
|
||||
else:
|
||||
log.log_message(logging.ERROR, Constant.str_feed_takePhoto_fail + real_position.to_string())
|
||||
self.log_signal.emit(logging.ERROR, Constant.str_feed_takePhoto_fail + real_position.to_string())
|
||||
z_diff, max_z_index = (lambda pts: (
|
||||
max(pts, key=lambda p: p.Z).Z - min(pts, key=lambda p: p.Z).Z,
|
||||
pts.index(max(pts, key=lambda p: p.Z))
|
||||
@ -407,30 +408,30 @@ class Feeding(QObject):
|
||||
# 拍照位置从五个变为三个
|
||||
self.feedConfig.photo_locs = [detect_pos_list[0], detect_pos_list[2], detect_pos_list[4]]
|
||||
take_position = detect_pos_list[0]
|
||||
log.log_message(logging.INFO, Constant.str_feed_takePhoto_front_finish)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_takePhoto_front_finish)
|
||||
else:
|
||||
take_position = detect_pos_list[max_z_index]
|
||||
log.log_message(logging.INFO, Constant.str_feed_takePhoto_front)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_takePhoto_front)
|
||||
else:
|
||||
if z_diff < Constant.bag_height:
|
||||
take_position = detect_pos_list[0]
|
||||
log.log_message(logging.INFO, Constant.str_feed_takePhoto_new_line)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_takePhoto_new_line)
|
||||
else:
|
||||
take_position = detect_pos_list[max_z_index]
|
||||
log.log_message(logging.INFO, Constant.str_feed_takePhoto_line)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_takePhoto_line)
|
||||
|
||||
self.feedConfig.feedLine.set_take_position(take_position) ##TODO 检查有没有异常
|
||||
self.next_position()
|
||||
except:
|
||||
log.log_message(logging.ERROR, Constant.str_feed_takePhoto_fail)
|
||||
self.log_signal.emit(logging.ERROR, Constant.str_feed_takePhoto_fail)
|
||||
self.error_photo_count += 1
|
||||
else:
|
||||
self.feedConfig.feedLine.set_take_position(real_position) ##TODO 检查有没有异常
|
||||
self.next_position()
|
||||
log.log_message(logging.INFO, Constant.str_feed_takePhoto_move)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_takePhoto_move)
|
||||
|
||||
elif self.feedStatus == FeedStatus.FTake:
|
||||
log.log_message(logging.INFO, Constant.str_feed_take)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_take)
|
||||
if self.feedConfig.feedLine.get_take_position().get_position() != None:
|
||||
# self.take_no_photo = False
|
||||
if self.feedConfig.feedLine.get_take_position().get_position().compare(real_position, is_action=True):
|
||||
@ -439,7 +440,7 @@ class Feeding(QObject):
|
||||
# self.sendIOControl(self.robotClient.con_ios[1], 1)
|
||||
# self.sendIOControl(self.robotClient.con_ios[2], 1)
|
||||
|
||||
log.log_message(logging.INFO, "到达抓料点位")
|
||||
self.log_signal.emit(logging.INFO, "到达抓料点位")
|
||||
if self.catch.catch_status == CatchStatus.CNone :
|
||||
self.catch.catch_status = CatchStatus.CTake
|
||||
return
|
||||
@ -449,11 +450,11 @@ class Feeding(QObject):
|
||||
self.catch.catch_status = CatchStatus.CNone
|
||||
#self.feedConfig.feedLine.set_take_position(None)
|
||||
time.sleep(self.robotClient.time_delay_take)
|
||||
log.log_message(logging.INFO, Constant.str_feed_take_success)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_take_success)
|
||||
self.next_position()
|
||||
|
||||
else:
|
||||
log.log_message(logging.ERROR, Constant.str_feed_takePhoto_fail)
|
||||
self.log_signal.emit(logging.ERROR, Constant.str_feed_takePhoto_fail)
|
||||
# self.take_no_photo = True
|
||||
|
||||
# 继续获取图像
|
||||
@ -464,18 +465,18 @@ class Feeding(QObject):
|
||||
|
||||
|
||||
elif self.feedStatus == FeedStatus.FBroken1:
|
||||
log.log_message(logging.INFO, Constant.str_feed_broken)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_broken)
|
||||
if self.get_current_position().get_position().compare(real_position):
|
||||
self.next_position()
|
||||
|
||||
|
||||
elif self.feedStatus == FeedStatus.FBroken2:
|
||||
log.log_message(logging.INFO, Constant.str_feed_broken)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_broken)
|
||||
if self.get_current_position().get_position().compare(real_position):
|
||||
self.next_position()
|
||||
|
||||
elif self.feedStatus == FeedStatus.FShake:
|
||||
log.log_message(logging.INFO, Constant.str_feed_shake)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_shake)
|
||||
if self.get_current_position().get_position().compare(real_position,is_action=True):
|
||||
# TODO 震动方案
|
||||
|
||||
@ -491,7 +492,7 @@ class Feeding(QObject):
|
||||
self.next_position()
|
||||
|
||||
elif self.feedStatus == FeedStatus.FDropBag:
|
||||
log.log_message(logging.INFO, Constant.str_feed_drop)
|
||||
self.log_signal.emit(logging.INFO, Constant.str_feed_drop)
|
||||
|
||||
if self.get_current_position().get_position().compare(real_position,is_action=True):
|
||||
# self.sendIOControl(self.robotClient.con_ios[0], 0)
|
||||
@ -511,7 +512,7 @@ class Feeding(QObject):
|
||||
if self.detect.detect_status == DetectStatus.DNone:
|
||||
self.detect.detect_status = DetectStatus.DDetect
|
||||
self.feedConfig.num = self.feedConfig.num - 1
|
||||
log.log_message(logging.INFO, f'{Constant.str_feed_feed_num}{self.feedConfig.num}')
|
||||
self.log_signal.emit(logging.INFO, f'{Constant.str_feed_feed_num}{self.feedConfig.num}')
|
||||
self.next_position()
|
||||
|
||||
|
||||
@ -541,7 +542,7 @@ class Feeding(QObject):
|
||||
break
|
||||
|
||||
if self.pos_index == -1:
|
||||
log.log_message(logging.ERROR, Constant.str_feed_return_original_position_fail)
|
||||
self.log_signal.emit(logging.ERROR, Constant.str_feed_return_original_position_fail)
|
||||
min_distance = 99999999
|
||||
for index, pos_model in enumerate(self.feedConfig.feedLine.feed_positions):
|
||||
if get_distance(pos_model.get_position(), real_position) < min_distance:
|
||||
@ -612,7 +613,7 @@ class Feeding(QObject):
|
||||
break
|
||||
|
||||
if pos_index == -1:
|
||||
log.log_message(logging.ERROR, Constant.str_feed_return_original_position_fail)
|
||||
self.log_signal.emit(logging.ERROR, Constant.str_feed_return_original_position_fail)
|
||||
min_distance = 99999999
|
||||
for index, pos_model in enumerate(self.feedConfig.feedLine.feed_positions):
|
||||
if get_distance(pos_model.get_position(), real_position)<min_distance:
|
||||
@ -667,7 +668,7 @@ class Feeding(QObject):
|
||||
IO_command.dsID = 'HCRemoteCommand'
|
||||
IO_command.instructions.append(io_instruction)
|
||||
self.robotClient.add_sendQuene(IO_command.toString())
|
||||
log.log_message(logging.INFO, f'{Constant.str_feed_io_control}{IO_bit},{IO_Status}')
|
||||
self.log_signal.emit(logging.INFO, f'{Constant.str_feed_io_control}{IO_bit},{IO_Status}')
|
||||
pass
|
||||
|
||||
def sendTargPosition(self, real_position, move_type: MoveType = MoveType.WORLD, speed=5,real_position1=None):
|
||||
@ -703,7 +704,7 @@ class Feeding(QObject):
|
||||
|
||||
|
||||
try:
|
||||
log.log_message(logging.INFO, log_str)
|
||||
self.log_signal.emit(logging.INFO, log_str)
|
||||
except:
|
||||
return
|
||||
|
||||
@ -731,7 +732,7 @@ class Feeding(QObject):
|
||||
elif start_pos.lineType == LineType.WORLD.value:
|
||||
if self.robotClient.status_model.getAnglePosition().is_error_angel_move(start_pos.get_position(),self.robotClient.max_angle_interval):
|
||||
self.feedStatus = None
|
||||
log.log_message(logging.ERROR, Constant.str_feed_angle_error)
|
||||
self.log_signal.emit(logging.ERROR, Constant.str_feed_angle_error)
|
||||
else:
|
||||
self.sendTargPosition(real_position=start_pos.get_position(),speed=self.robotClient.debug_speed,move_type=MoveType.AXIS)
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user