update 更新添加各种中间点位
This commit is contained in:
@ -21,15 +21,21 @@ class FeedStatus(IntEnum):
|
||||
FSafeF = 6
|
||||
FFeedP = 7
|
||||
FBroken = 8
|
||||
FFinished = 9
|
||||
FCut = 9
|
||||
FShake = 10
|
||||
FDropBag = 11
|
||||
FFinished = 12
|
||||
|
||||
class FeedLine:
|
||||
def __init__(self,name,safe_position:Real_Position,photo_position:Real_Position,mid_position:Real_Position,broken_position:Real_Position,feed_position:Real_Position):
|
||||
def __init__(self,name,safe_position:Real_Position,photo_position:Real_Position,mid_position:Real_Position,broken1_position:Real_Position,broken2_position:Real_Position,drop_bag_position:Real_Position,zip_bag_position:Real_Position,feed_position:Real_Position):
|
||||
self.safe_position = safe_position
|
||||
self.photo_position = photo_position
|
||||
self.feed_position = feed_position
|
||||
self.mid_position = mid_position
|
||||
self.broken_position = broken_position
|
||||
self.broken1_position = broken1_position
|
||||
self.broken2_position = broken2_position
|
||||
self.drop_bag_position = drop_bag_position
|
||||
self.zip_bag_position = zip_bag_position
|
||||
self.take_position = None
|
||||
self.name = name
|
||||
|
||||
@ -150,35 +156,72 @@ class Feeding():
|
||||
log.log_message(logging.INFO, Constant.str_feed_feed)
|
||||
if self.feedConfig.feedLine.feed_position.compare(real_position):
|
||||
self.feedStatus = FeedStatus.FBroken
|
||||
self.sendTargPosition(self.feedConfig.feedLine.broken_position)
|
||||
self.sendTargPosition(self.feedConfig.feedLine.broken1_position)
|
||||
pass #破袋
|
||||
|
||||
elif self.feedStatus==FeedStatus.FBroken:
|
||||
log.log_message(logging.INFO, Constant.str_feed_broken)
|
||||
if self.feedConfig.feedLine.broken_position.compare(real_position):
|
||||
self.feedConfig.num = self.feedConfig.num-1
|
||||
if self.feedConfig.num == 0:
|
||||
self.feedStatus=FeedStatus.FNone
|
||||
self.sendTargPosition(self.feedConfig.feedLine.safe_position)
|
||||
self.init_detection_image()
|
||||
log.log_message(logging.INFO, Constant.str_feed_finish)
|
||||
if self.feedConfig.feedLine.broken1_position.compare(real_position):
|
||||
self.sendTargPosition(self.feedConfig.feedLine.broken2_position)
|
||||
if self.feedConfig.feedLine.broken2_position.compare(real_position):
|
||||
current_position = Real_Position().init_position(0,0,0,0,0,0)
|
||||
current_position.X = self.robotClient.status_model.axis_0
|
||||
current_position.Y = self.robotClient.status_model.axis_1
|
||||
current_position.Z = self.robotClient.status_model.axis_2
|
||||
current_position.U = self.robotClient.status_model.axis_3
|
||||
current_position.V = self.robotClient.status_model.axis_4
|
||||
current_position.W = self.robotClient.status_model.axis_5
|
||||
for i in range(8):
|
||||
if (i % 2 == 0) ^ (i >= 3): ## 过一半取消
|
||||
c1 = current_position.U - 5
|
||||
self.sendTargPosition(c1, MoveType.AXIS, speed=Constant.shake_speed)
|
||||
else:
|
||||
c1 = current_position.U + 5
|
||||
self.sendTargPosition(c1, MoveType.AXIS, speed=Constant.shake_speed)
|
||||
if True: # 延迟判断,如果最后点位延迟1s,则认为阶段完成
|
||||
self.feedStatus = FeedStatus.FDropBag
|
||||
self.sendTargPosition(self.feedConfig.feedLine.safe_position)
|
||||
|
||||
elif self.feedStatus == FeedStatus.FDropBag:
|
||||
log.log_message(logging.INFO, Constant.str_feed_drop)
|
||||
if self.feedConfig.feedLine.safe_position.compare(real_position):
|
||||
if self.feedConfig.num - 1 != 0:
|
||||
self.sendTargPosition(self.feedConfig.feedLine.drop_bag_position)
|
||||
else:
|
||||
log.log_message(logging.INFO, f'{Constant.str_feed_feed_num}{self.feedConfig.num}')
|
||||
self.feedStatus = FeedStatus.FSafeP
|
||||
self.sendTargPosition(self.feedConfig.feedLine.safe_position)
|
||||
self.sendTargPosition(self.feedConfig.feedLine.zip_bag_position)
|
||||
pass
|
||||
if self.feedConfig.feedLine.drop_bag_position.compare(real_position):
|
||||
# TODO 松开吸嘴
|
||||
self.feedConfig.num = self.feedConfig.num - 1
|
||||
log.log_message(logging.INFO, f'{Constant.str_feed_feed_num}{self.feedConfig.num}')
|
||||
self.feedStatus = FeedStatus.FSafeP
|
||||
self.sendTargPosition(self.feedConfig.feedLine.safe_position)
|
||||
|
||||
|
||||
if self.feedConfig.feedLine.zip_bag_position.compare(real_position):
|
||||
log.log_message(logging.INFO, Constant.str_feed_zip_bag)
|
||||
# TODO 松开吸嘴 是否需要判断放没放开不
|
||||
self.feedStatus = FeedStatus.FNone
|
||||
self.sendTargPosition(self.feedConfig.feedLine.safe_position)
|
||||
self.init_detection_image()
|
||||
log.log_message(logging.INFO, Constant.str_feed_finish)
|
||||
|
||||
|
||||
pass
|
||||
|
||||
def sendTargPosition(self,real_position):
|
||||
|
||||
|
||||
def sendTargPosition(self,real_position,move_type:MoveType=MoveType.WORLD ,speed = Constant.speed):
|
||||
from Model.RobotModel import Instruction
|
||||
position_instruction = Instruction()
|
||||
position_instruction.speed = Constant.speed
|
||||
position_instruction.speed = speed
|
||||
position_instruction.m0 = real_position.X
|
||||
position_instruction.m1 = real_position.Y
|
||||
position_instruction.m2 = real_position.Z
|
||||
position_instruction.m3 = real_position.U
|
||||
position_instruction.m4 = real_position.V
|
||||
position_instruction.m5 = real_position.W
|
||||
position_instruction.action = MoveType.WORLD.value
|
||||
position_instruction.action = move_type.value
|
||||
instruction_command = CMDInstructRequest()
|
||||
instruction_command.instructions.append(position_instruction)
|
||||
request_command = instruction_command.toString()
|
||||
@ -196,6 +239,8 @@ class Feeding():
|
||||
self.robotClient.add_sendQuene(request_command)
|
||||
pass
|
||||
|
||||
|
||||
|
||||
def safe_check_columns(self):
|
||||
return True
|
||||
pass
|
||||
|
||||
@ -18,19 +18,38 @@ midposition_z = 406.721
|
||||
midposition_u = -3.256
|
||||
midposition_v = 7.334
|
||||
midposition_w = -4.307
|
||||
brokenposition_x = 357.269
|
||||
brokenposition_y = 478.874
|
||||
brokenposition_z = 209.979
|
||||
brokenposition_u = -3.100
|
||||
brokenposition_v = -3.198
|
||||
brokenposition_w = 49.945
|
||||
brokenposition1_x = 357.269
|
||||
brokenposition1_y = 478.874
|
||||
brokenposition1_z = 209.979
|
||||
brokenposition1_u = -3.100
|
||||
brokenposition1_v = -3.198
|
||||
brokenposition1_w = 49.945
|
||||
brokenposition2_x = 357.269
|
||||
brokenposition2_y = 478.874
|
||||
brokenposition2_z = 209.979
|
||||
brokenposition2_u = -3.100
|
||||
brokenposition2_v = -3.198
|
||||
brokenposition2_w = 49.945
|
||||
dropBagposition_x = 357.269
|
||||
dropBagposition_y = 478.874
|
||||
dropBagposition_z = 209.979
|
||||
dropBagposition_u = -3.100
|
||||
dropBagposition_v = -3.198
|
||||
dropBagposition_w = 49.945
|
||||
zipBagposition_x = 357.269
|
||||
zipBagposition_y = 478.874
|
||||
zipBagposition_z = 209.979
|
||||
zipBagposition_u = -3.100
|
||||
zipBagposition_v = -3.198
|
||||
zipBagposition_w = 49.945
|
||||
feedposition_x = 315.549
|
||||
feedposition_y = 427.090
|
||||
feedposition_z = 209.985
|
||||
feedposition_u = -2.793
|
||||
feedposition_v = -1.829
|
||||
feedposition_w = 50.000
|
||||
|
||||
dropDelay_time = 3
|
||||
shakeDelay_time = 6
|
||||
[FeedLine2]
|
||||
name = 反应釜2
|
||||
safeposition_x = 0.0
|
||||
@ -51,4 +70,6 @@ feedposition_z = 0.0
|
||||
feedposition_u = 0.0
|
||||
feedposition_v = 0.0
|
||||
feedposition_w = 0.0
|
||||
dropDelay_time = 3
|
||||
shakeDelay_time = 6
|
||||
|
||||
|
||||
@ -3,6 +3,7 @@ import os
|
||||
position_accuracy = 0.05
|
||||
manual_adjust_accuracy = 1
|
||||
speed = 10
|
||||
shake_speed = 20
|
||||
feedLine_set_section = 'FeedLine'
|
||||
feedLine_set_file = f'.{os.sep}Config{os.sep}feedLine.ini'
|
||||
set_ini = 'Seting.ini'
|
||||
@ -24,6 +25,8 @@ str_feed_mid = '移动到中位位置'
|
||||
str_feed_safe = '移动到安全位置'
|
||||
str_feed_takePhoto = '拍照'
|
||||
str_feed_broken = '移动到破袋位置'
|
||||
str_feed_broken_bag = '划袋'
|
||||
str_feed_drop = '移动扔空袋'
|
||||
str_feed_takePhoto_fail = '识别图像失败'
|
||||
str_feed_takePhoto_success = '识别图像成功'
|
||||
str_feed_covert_success = '转换坐标成功'
|
||||
@ -34,6 +37,7 @@ str_feed_finish = '投料结束'
|
||||
str_feed_take_success = '抓料成功'
|
||||
str_feed_take_fail = '抓料失败'
|
||||
str_feed_feed_num = '剩余投料次数:'
|
||||
str_feed_zip_bag = '移动到压缩袋位置'
|
||||
str_sys_switch_tool = '切换到工具坐标'
|
||||
str_sys_start_tool = '切换到自动运行状态'
|
||||
str_sys_clearAlarm = '清除报警'
|
||||
@ -48,3 +52,4 @@ str_tcp_robot_data_error = '数据解析错误'
|
||||
str_tcp_connect_no_reply = '无回复'
|
||||
str_tcp_connect_error = 'tcp连接错误'
|
||||
str_tcp_reconnect = '重连中'
|
||||
|
||||
|
||||
@ -4822,3 +4822,13 @@ Warning 2024-09-19 20:04:10:0204 DevID:Virtual USB3 Vision Source-Line:MvCamer
|
||||
Warning 2024-09-19 20:04:10:0204 DevID:Virtual USB3 Vision Source-Line:MvCameraControl.dll(GenTLManager.cpp-L0996) ProcessName:python.exe(14692) Description:[GetInterfaceInfos]TLGetInterfaceInfo[INTERFACE_INFO_VERSION] failed, Ret[0x80000001]
|
||||
Warning 2024-09-19 20:04:10:0204 DevID:Virtual USB3 Vision Source-Line:MvCameraControl.dll(GenTLManager.cpp-L1000) ProcessName:python.exe(14692) Description:[GetInterfaceInfos]TLGetInterfaceInfo[INTERFACE_INFO_MANUFACTURER] failed, Ret[0x80000001]
|
||||
Warning 2024-09-19 20:04:10:0204 DevID:Virtual USB3 Vision Source-Line:MvCameraControl.dll(GenTLManager.cpp-L1004) ProcessName:python.exe(14692) Description:[GetInterfaceInfos]TLGetInterfaceInfo[INTERFACE_INFO_USER_DEFINED_NAME] failed, Ret[0x80000001]
|
||||
Error 2024-10-11 21:23:05:0716 DevID: Source-Line:MvCameraControl.dll(OtherLoadLibrary.cpp-L0709) ProcessName:python.exe(9244) Description:[LoadSRAllFunctions]hSRModule is NULL, Ret[0x8000000c]
|
||||
Warning 2024-10-11 21:23:05:0729 DevID: Source-Line:MvCameraControl.dll(GenTLLoadLibraryEx.cpp-L0345) ProcessName:python.exe(9244) Description:[LoadCtiLibInter]MV_GCSetConfigIntValue is NULL, CTI path[D:\environment\envs\UICreater\lib\site-packages\MvProducerVIR.dll]
|
||||
Warning 2024-10-11 21:23:05:0729 DevID:Virtual GigE Vision Source-Line:MvCameraControl.dll(GenTLManager.cpp-L0992) ProcessName:python.exe(9244) Description:[GetInterfaceInfos]TLGetInterfaceInfo[INTERFACE_INFO_MODEL] failed, Ret[0x80000001]
|
||||
Warning 2024-10-11 21:23:05:0729 DevID:Virtual GigE Vision Source-Line:MvCameraControl.dll(GenTLManager.cpp-L0996) ProcessName:python.exe(9244) Description:[GetInterfaceInfos]TLGetInterfaceInfo[INTERFACE_INFO_VERSION] failed, Ret[0x80000001]
|
||||
Warning 2024-10-11 21:23:05:0729 DevID:Virtual GigE Vision Source-Line:MvCameraControl.dll(GenTLManager.cpp-L1000) ProcessName:python.exe(9244) Description:[GetInterfaceInfos]TLGetInterfaceInfo[INTERFACE_INFO_MANUFACTURER] failed, Ret[0x80000001]
|
||||
Warning 2024-10-11 21:23:05:0729 DevID:Virtual GigE Vision Source-Line:MvCameraControl.dll(GenTLManager.cpp-L1004) ProcessName:python.exe(9244) Description:[GetInterfaceInfos]TLGetInterfaceInfo[INTERFACE_INFO_USER_DEFINED_NAME] failed, Ret[0x80000001]
|
||||
Warning 2024-10-11 21:23:05:0729 DevID:Virtual USB3 Vision Source-Line:MvCameraControl.dll(GenTLManager.cpp-L0992) ProcessName:python.exe(9244) Description:[GetInterfaceInfos]TLGetInterfaceInfo[INTERFACE_INFO_MODEL] failed, Ret[0x80000001]
|
||||
Warning 2024-10-11 21:23:05:0729 DevID:Virtual USB3 Vision Source-Line:MvCameraControl.dll(GenTLManager.cpp-L0996) ProcessName:python.exe(9244) Description:[GetInterfaceInfos]TLGetInterfaceInfo[INTERFACE_INFO_VERSION] failed, Ret[0x80000001]
|
||||
Warning 2024-10-11 21:23:05:0729 DevID:Virtual USB3 Vision Source-Line:MvCameraControl.dll(GenTLManager.cpp-L1000) ProcessName:python.exe(9244) Description:[GetInterfaceInfos]TLGetInterfaceInfo[INTERFACE_INFO_MANUFACTURER] failed, Ret[0x80000001]
|
||||
Warning 2024-10-11 21:23:05:0729 DevID:Virtual USB3 Vision Source-Line:MvCameraControl.dll(GenTLManager.cpp-L1004) ProcessName:python.exe(9244) Description:[GetInterfaceInfos]TLGetInterfaceInfo[INTERFACE_INFO_USER_DEFINED_NAME] failed, Ret[0x80000001]
|
||||
|
||||
@ -28,6 +28,7 @@ photo_z3 = 0
|
||||
LineCount=2
|
||||
|
||||
|
||||
|
||||
[Camera_Feed]
|
||||
IPAddress=127.0.0.1
|
||||
|
||||
|
||||
46
app.py
46
app.py
@ -190,8 +190,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
(int(self.configReader.get('Robot_Feed', 'photo_x3')),
|
||||
int(self.configReader.get('Robot_Feed', 'photo_y3')),int(self.configReader.get('Robot_Feed', 'photo_z3')))
|
||||
]
|
||||
|
||||
self.robotClient = RobotClient(ip, port, photo_locs,self.command_position_quene, self.status_address)
|
||||
dropDelay_time = int(self.configReader.get('Robot_Feed', 'dropDelay_time'))
|
||||
self.robotClient = RobotClient(ip, port, photo_locs, self.command_position_quene, self.status_address)
|
||||
self.feeding = Feeding(self.robotClient, self.detection) # 临时
|
||||
self.last_time = time.time()
|
||||
|
||||
@ -286,8 +286,12 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
safe_position = Real_Position()
|
||||
photo_position = Real_Position()
|
||||
mid_position = Real_Position()
|
||||
broken_position = Real_Position()
|
||||
broken_position1 = Real_Position()
|
||||
broken_position2 = Real_Position()
|
||||
feed_position = Real_Position()
|
||||
dropBag_position = Real_Position()
|
||||
zipBag_poistion = Real_Position()
|
||||
|
||||
|
||||
safe_position.X = float(self.configReader.get(line_str, 'SafePosition_x', fallback=0))
|
||||
safe_position.Y = float(self.configReader.get(line_str, 'SafePosition_y', fallback=0))
|
||||
@ -310,12 +314,32 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
mid_position.V = float(self.configReader.get(line_str, 'MidPosition_v', fallback=0))
|
||||
mid_position.W = float(self.configReader.get(line_str, 'MidPosition_w', fallback=0))
|
||||
|
||||
broken_position.X = float(self.configReader.get(line_str, 'BrokenPosition_x', fallback=0))
|
||||
broken_position.Y = float(self.configReader.get(line_str, 'BrokenPosition_y', fallback=0))
|
||||
broken_position.Z = float(self.configReader.get(line_str, 'BrokenPosition_z', fallback=0))
|
||||
broken_position.U = float(self.configReader.get(line_str, 'BrokenPosition_u', fallback=0))
|
||||
broken_position.V = float(self.configReader.get(line_str, 'BrokenPosition_v', fallback=0))
|
||||
broken_position.W = float(self.configReader.get(line_str, 'BrokenPosition_w', fallback=0))
|
||||
broken_position1.X = float(self.configReader.get(line_str, 'BrokenPosition_x', fallback=0))
|
||||
broken_position1.Y = float(self.configReader.get(line_str, 'BrokenPosition_y', fallback=0))
|
||||
broken_position1.Z = float(self.configReader.get(line_str, 'BrokenPosition_z', fallback=0))
|
||||
broken_position1.U = float(self.configReader.get(line_str, 'BrokenPosition_u', fallback=0))
|
||||
broken_position1.V = float(self.configReader.get(line_str, 'BrokenPosition_v', fallback=0))
|
||||
broken_position1.W = float(self.configReader.get(line_str, 'BrokenPosition_w', fallback=0))
|
||||
broken_position2.X = float(self.configReader.get(line_str, 'BrokenPosition2_x', fallback=0))
|
||||
broken_position2.Y = float(self.configReader.get(line_str, 'BrokenPosition2_y', fallback=0))
|
||||
broken_position2.Z = float(self.configReader.get(line_str, 'BrokenPosition2_z', fallback=0))
|
||||
broken_position2.U = float(self.configReader.get(line_str, 'BrokenPosition2_u', fallback=0))
|
||||
broken_position2.V = float(self.configReader.get(line_str, 'BrokenPosition2_v', fallback=0))
|
||||
broken_position2.W = float(self.configReader.get(line_str, 'BrokenPosition2_w', fallback=0))
|
||||
|
||||
dropBag_position.X = float(self.configReader.get(line_str, 'DropBagPosition_x', fallback=0))
|
||||
dropBag_position.Y = float(self.configReader.get(line_str, 'DropBagPosition_y', fallback=0))
|
||||
dropBag_position.Z = float(self.configReader.get(line_str, 'DropBagPosition_z', fallback=0))
|
||||
dropBag_position.U = float(self.configReader.get(line_str, 'DropBagPosition_u', fallback=0))
|
||||
dropBag_position.V = float(self.configReader.get(line_str, 'DropBagPosition_v', fallback=0))
|
||||
dropBag_position.W = float(self.configReader.get(line_str, 'DropBagPosition_w', fallback=0))
|
||||
zipBag_poistion.X = float(self.configReader.get(line_str, 'ZipBagPosition_x', fallback=0))
|
||||
zipBag_poistion.Y = float(self.configReader.get(line_str, 'ZipBagPosition_y', fallback=0))
|
||||
zipBag_poistion.Z = float(self.configReader.get(line_str, 'ZipBagPosition_z', fallback=0))
|
||||
zipBag_poistion.U = float(self.configReader.get(line_str, 'ZipBagPosition_u', fallback=0))
|
||||
zipBag_poistion.V = float(self.configReader.get(line_str, 'ZipBagPosition_v', fallback=0))
|
||||
zipBag_poistion.W = float(self.configReader.get(line_str, 'ZipBagPosition_w', fallback=0))
|
||||
|
||||
|
||||
feed_position.X = float(self.configReader.get(line_str, 'FeedPosition_x', fallback=0))
|
||||
feed_position.Y = float(self.configReader.get(line_str, 'FeedPosition_y', fallback=0))
|
||||
@ -324,10 +348,12 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
feed_position.V = float(self.configReader.get(line_str, 'FeedPosition_v', fallback=0))
|
||||
feed_position.W = float(self.configReader.get(line_str, 'FeedPosition_w', fallback=0))
|
||||
|
||||
|
||||
|
||||
name = self.configReader.get(line_str, 'Name', fallback='未命名')
|
||||
self.feedLine_dict[f'{Constant.feedLine_set_section}{i + 1}'] = FeedLine(name, safe_position,
|
||||
photo_position, mid_position,
|
||||
broken_position, feed_position)
|
||||
broken_position1,broken_position2,dropBag_position,zipBag_poistion,feed_position)
|
||||
self.init_seting_frame()
|
||||
self.updateUI_Select_Line()
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user