diff --git a/app.py b/app.py index abd6182..2c0d61d 100644 --- a/app.py +++ b/app.py @@ -1,4 +1,4 @@ -from flask import Flask, render_template +from flask import Flask, render_template, request from flask_socketio import SocketIO import toml from loguru import logger @@ -51,6 +51,8 @@ logger.add(handler, format="{time:MM-DD HH:mm:ss} {message}", level="DEBUG") fileOptions_path = '/home/evan/Workplace/project_main' fileOptions_list = ['cfg_args.toml','cfg_main.toml', 'cfg_subtask.toml'] +cfg_args_path = os.path.join(fileOptions_path, 'cfg_args.toml') + @app.route('/') def index(): @@ -58,11 +60,16 @@ def index(): @app.route('/run') def run(): - return render_template('index1.html') + mode_index = request.args.get('mode') + config_args = toml.load(cfg_args_path) + config_args['lane_mode']['mode_index'] = int(mode_index) + with open(cfg_args_path, 'w') as config_file: + toml.dump(config_args, config_file) + return render_template('index2.html') -@app.route('/csdn') -def csdn(): - return render_template('csdn.html') +# @app.route('/csdn') +# def csdn(): +# return render_template('csdn.html') @socketio.on('operate') def operate_handle(data): @@ -134,12 +141,12 @@ def operate_handle(data): elif data['type'] == 'skip_task': logger.info(data) skip_task_queue.put(1) - elif data['type'] == 'save_target_person': - config_path = os.path.join(fileOptions_path, 'cfg_args.toml') - config_args = toml.load(config_path) - config_args['lane_mode']['mode_index'] = int(data['content']) - with open(config_path, 'w') as config_file: - toml.dump(config_args, config_file) + # elif data['type'] == 'save_target_person': + # config_path = os.path.join(fileOptions_path, 'cfg_args.toml') + # config_args = toml.load(config_path) + # config_args['lane_mode']['mode_index'] = int(data['content']) + # with open(config_path, 'w') as config_file: + # toml.dump(config_args, config_file) @socketio.on('connect') def test_connect(): diff --git a/cfg_args.toml b/cfg_args.toml index 5529f20..9e91ec4 100644 --- a/cfg_args.toml +++ b/cfg_args.toml @@ -1,5 +1,5 @@ [lane_mode] -mode_index = 3 +mode_index = 1 [task] Subtask_enable = true diff --git a/cfg_main.toml b/cfg_main.toml index 71e1194..fd06df5 100644 --- a/cfg_main.toml +++ b/cfg_main.toml @@ -6,14 +6,14 @@ logger_format = "{time} {level} {message}" [find_counts] GetBlock_counts = 5 -PutBlock_counts = 8 +PutBlock_counts = 12 GetBBall_counts = 5 UpTower_counts = 3 GetRBall_counts = 10 PutBBall_counts = 15 PutHanoi1_counts = 7 PutHanoi2_counts = 2 -PutHanoi3_counts = 1 +PutHanoi3_counts = 5 MoveArea1_counts = 6 MoveArea2_counts = 1700 KickAss_counts = 10 diff --git a/cfg_subtask.toml b/cfg_subtask.toml index 064f76c..df54f17 100644 --- a/cfg_subtask.toml +++ b/cfg_subtask.toml @@ -1,5 +1,5 @@ [get_block] -pid_kp = 1.2 +pid_kp = 1.0 pid_ki = 0 pid_kd = 0 first_block = "blue" @@ -15,17 +15,17 @@ pid_ki = 0 pid_kd = 0 [up_tower] -pid_kp = 1.1 +pid_kp = 1.0 pid_ki = 0 pid_kd = 0 [get_rball] -pid_kp = 0.8 +pid_kp = 1.5 pid_ki = 0 pid_kd = 0 [put_bball] -pid_kp = 1.6 +pid_kp = 2.0 pid_ki = 0 pid_kd = 0 @@ -42,7 +42,7 @@ pos_gap = 160 first_target = "mp" [put_hanoi3] -pid_kp = 1.3 +pid_kp = 1.7 pid_ki = 0 pid_kd = 0 diff --git a/cfg_subtask.toml.6_9.bak b/cfg_subtask.toml.6_9.bak index 064f76c..d938550 100644 --- a/cfg_subtask.toml.6_9.bak +++ b/cfg_subtask.toml.6_9.bak @@ -35,7 +35,7 @@ pid_ki = 0 pid_kd = 0 [put_hanoi2] -pid_kp = 1.0 +pid_kp = 2.0 pid_ki = 0 pid_kd = 0 pos_gap = 160 diff --git a/main.py b/main.py index e31bab0..11f191f 100644 --- a/main.py +++ b/main.py @@ -27,21 +27,21 @@ act.axis.exec() # 向任务队列添加任务 task_queue = queue.Queue() -if cfg_main['task']['Subtask_enable'] is True: - task_queue.put(sb.task("人员施救第一块", sb.get_block1, cfg_main['find_counts']['GetBlock_counts'], cfg_main['task']['GetBlock_enable'])) - task_queue.put(sb.task("人员施救第二块", sb.get_block2, cfg_main['find_counts']['GetBlock_counts'], cfg_main['task']['GetBlock_enable'])) - task_queue.put(sb.task("紧急转移", sb.put_block, cfg_main['find_counts']['PutBlock_counts'], cfg_main['task']['GetBlock_enable'])) - task_queue.put(sb.task("整装上阵", sb.get_bball, cfg_main['find_counts']['GetBBall_counts'], cfg_main['task']['GetBBall_enable'])) - # TODO 添加一个空任务用于提前降 z 轴 - task_queue.put(sb.task("通信抢修", sb.up_tower, cfg_main['find_counts']['UpTower_counts'], cfg_main['task']['UpTower_enable'])) - task_queue.put(sb.task("高控排险", sb.get_rball, cfg_main['find_counts']['GetRBall_counts'], cfg_main['task']['GetRBall_enable'])) - task_queue.put(sb.task("派发物资", sb.put_bball, cfg_main['find_counts']['PutBBall_counts'], cfg_main['task']['GetBBall_enable'] and cfg_main['task']['PutBBall_enable'])) - task_queue.put(sb.task("物资盘点一阶段", sb.put_hanoi1, cfg_main['find_counts']['PutHanoi1_counts'], enable = True)) # 无论是否进行任务,检测标识并转向都是必须进行的 - task_queue.put(sb.task("物资盘点二阶段", sb.put_hanoi2, cfg_main['find_counts']['PutHanoi2_counts'], cfg_main['task']['PutHanoi_enable'])) - task_queue.put(sb.task("物资盘点三阶段", sb.put_hanoi3, cfg_main['find_counts']['PutHanoi3_counts'], enable = True)) - task_queue.put(sb.task("应急避险一阶段", sb.move_area1, cfg_main['find_counts']['MoveArea1_counts'], cfg_main['task']['MoveArea_enable'])) - task_queue.put(sb.task("应急避险二阶段", sb.move_area2, cfg_main['find_counts']['MoveArea2_counts'], cfg_main['task']['MoveArea_enable'])) - task_queue.put(sb.task("扫黑除暴", sb.kick_ass, cfg_main['find_counts']['KickAss_counts'], cfg_main['task']['KickAss_enable'])) +# if cfg_main['task']['Subtask_enable'] is True: +# task_queue.put(sb.task("人员施救第一块", sb.get_block1, cfg_main['find_counts']['GetBlock_counts'], cfg_main['task']['GetBlock_enable'])) +# task_queue.put(sb.task("人员施救第二块", sb.get_block2, cfg_main['find_counts']['GetBlock_counts'], cfg_main['task']['GetBlock_enable'])) +# task_queue.put(sb.task("紧急转移", sb.put_block, cfg_main['find_counts']['PutBlock_counts'], cfg_main['task']['GetBlock_enable'])) +# task_queue.put(sb.task("整装上阵", sb.get_bball, cfg_main['find_counts']['GetBBall_counts'], cfg_main['task']['GetBBall_enable'])) +# # TODO 添加一个空任务用于提前降 z 轴 +# task_queue.put(sb.task("通信抢修", sb.up_tower, cfg_main['find_counts']['UpTower_counts'], cfg_main['task']['UpTower_enable'])) +# task_queue.put(sb.task("高控排险", sb.get_rball, cfg_main['find_counts']['GetRBall_counts'], cfg_main['task']['GetRBall_enable'])) +# task_queue.put(sb.task("派发物资", sb.put_bball, cfg_main['find_counts']['PutBBall_counts'], cfg_main['task']['GetBBall_enable'] and cfg_main['task']['PutBBall_enable'])) +# task_queue.put(sb.task("物资盘点一阶段", sb.put_hanoi1, cfg_main['find_counts']['PutHanoi1_counts'], enable = True)) # 无论是否进行任务,检测标识并转向都是必须进行的 +# task_queue.put(sb.task("物资盘点二阶段", sb.put_hanoi2, cfg_main['find_counts']['PutHanoi2_counts'], cfg_main['task']['PutHanoi_enable'])) +# task_queue.put(sb.task("物资盘点三阶段", sb.put_hanoi3, cfg_main['find_counts']['PutHanoi3_counts'], enable = True)) +# task_queue.put(sb.task("应急避险一阶段", sb.move_area1, cfg_main['find_counts']['MoveArea1_counts'], cfg_main['task']['MoveArea_enable'])) +# task_queue.put(sb.task("应急避险二阶段", sb.move_area2, cfg_main['find_counts']['MoveArea2_counts'], cfg_main['task']['MoveArea_enable'])) +# task_queue.put(sb.task("扫黑除暴", sb.kick_ass, cfg_main['find_counts']['KickAss_counts'], cfg_main['task']['KickAss_enable'])) # 将任务队列传入调度模块中 task_queuem_t = sb.task_queuem(task_queue) diff --git a/main_upper.py b/main_upper.py index 7b6a295..ba5b7ba 100644 --- a/main_upper.py +++ b/main_upper.py @@ -60,7 +60,7 @@ def main_func(_queue, _skip_queue): task_queue.put(sb.task("整装上阵", sb.get_bball, cfg_main['find_counts']['GetBBall_counts'], cfg_args['task']['GetBBall_enable'])) # # TODO 添加一个空任务用于提前降 z 轴 task_queue.put(sb.task("通信抢修", sb.up_tower, cfg_main['find_counts']['UpTower_counts'], cfg_args['task']['UpTower_enable'])) - task_queue.put(sb.task("高控排险", sb.get_rball, cfg_main['find_counts']['GetRBall_counts'], cfg_args['task']['GetRBall_enable'])) + task_queue.put(sb.task("高空排险", sb.get_rball, cfg_main['find_counts']['GetRBall_counts'], cfg_args['task']['GetRBall_enable'])) task_queue.put(sb.task("派发物资", sb.put_bball, cfg_main['find_counts']['PutBBall_counts'], cfg_args['task']['GetBBall_enable'] and cfg_args['task']['PutBBall_enable'])) task_queue.put(sb.task("物资盘点一阶段", sb.put_hanoi1, cfg_main['find_counts']['PutHanoi1_counts'], enable = True)) # 无论是否进行任务,检测标识并转向都是必须进行的 task_queue.put(sb.task("物资盘点二阶段", sb.put_hanoi2, cfg_main['find_counts']['PutHanoi2_counts'], cfg_args['task']['PutHanoi_enable'])) diff --git a/subtask.py b/subtask.py index 4c44c60..48372c0 100644 --- a/subtask.py +++ b/subtask.py @@ -546,7 +546,7 @@ class put_block(): ret, box = filter.get(tlabel.HOSPITAL) if ret > 0: width = box[0][2] - box[0][0] - if width > 130: + if width > 135: return True return False def exec(self): @@ -557,7 +557,7 @@ class put_block(): by_cmd.send_distance_x(10, 100) by_cmd.send_position_axis_z(30, 0) time.sleep(0.5) - by_cmd.send_position_axis_x(1, 20) + by_cmd.send_position_axis_x(1, 50) # 20 time.sleep(1) by_cmd.send_angle_claw(63) time.sleep(1) @@ -582,7 +582,7 @@ class put_block(): time.sleep(1) by_cmd.send_position_axis_z(30, 0) time.sleep(0.5) - by_cmd.send_position_axis_x(1, 20) + by_cmd.send_position_axis_x(1, 50) time.sleep(1.5) by_cmd.send_angle_claw(45) time.sleep(1) @@ -702,12 +702,12 @@ class up_tower(): by_cmd.send_distance_x(-10, 120) time.sleep(1) # 上古參數 - # by_cmd.send_distance_y(-10, 50) + by_cmd.send_distance_y(-10, 80) # 6_9 模型參數 - by_cmd.send_distance_y(-10, 40) + # by_cmd.send_distance_y(-10, 40) # 7_12_3 模型參數 # by_cmd.send_distance_y(-10, 50) - # time.sleep(1) + time.sleep(2) car_stop() # FIXME 如果下發 distance 後直接 car_stop,則 distance 執行時間僅由指令間處理延時決定 # time.sleep(3) @@ -758,21 +758,23 @@ class get_rball(): # 靠近塔 by_cmd.send_angle_scoop(20) # 上古參數 - # by_cmd.send_distance_y(-15, 45) # 50 + by_cmd.send_distance_y(-15, 70) # 50 # 6_9 參數 - by_cmd.send_distance_y(-15, 35) - time.sleep(2) + # by_cmd.send_distance_y(-15, 35) + # time.sleep(2) # 7_12_3 參數 # by_cmd.send_distance_y(-15, 45) - # time.sleep(2) + time.sleep(2) car_stop() calibrate_new(tlabel.RBALL,offset = 44, run = True) time.sleep(1) logger.info("抓红球") - # by_cmd.send_angle_scoop(15) + # by_cmd.send_angle_scoop(12) time.sleep(0.5) by_cmd.send_position_axis_z(30, 170) time.sleep(2.5) + by_cmd.send_angle_scoop(12) + time.sleep(0.5) by_cmd.send_angle_scoop(7) time.sleep(0.5) by_cmd.send_speed_y(15) @@ -811,7 +813,7 @@ class put_bball(): calibrate_new(tlabel.BASKET,offset = -40, run = True, run_speed = 6) # by_cmd.send_distance_x(10, 10) # 向左运动 - # by_cmd.send_distance_y(-10, 35) + by_cmd.send_distance_y(-10, 35) # by_cmd.send_angle_storage(10) # time.sleep(1) @@ -944,7 +946,7 @@ class put_hanoi1(): def after(self): # var.switch_lane_model = True if utils.direction == tlabel.RMARK: - var.pid_turning.set(cfg["put_hanoi1"]["pid_kp"] - 0.3, cfg["put_hanoi1"]["pid_ki"], cfg["put_hanoi1"]["pid_kd"]) + var.pid_turning.set(cfg["put_hanoi1"]["pid_kp"] - 0.2, cfg["put_hanoi1"]["pid_ki"], cfg["put_hanoi1"]["pid_kd"]) else: var.pid_turning.set(cfg["put_hanoi1"]["pid_kp"], cfg["put_hanoi1"]["pid_ki"], cfg["put_hanoi1"]["pid_kd"]) pass @@ -1184,7 +1186,7 @@ class put_hanoi2(): # while True: # pass by_cmd.send_speed_x(12) - time.sleep(1.5) + time.sleep(1.2) def nexec(self): pass def after(self): @@ -1194,6 +1196,7 @@ class put_hanoi2(): else: var.pid_turning.set(cfg["put_hanoi2"]["pid_kp"], cfg["put_hanoi2"]["pid_ki"], cfg["put_hanoi2"]["pid_kd"]) # time.sleep(2) + var.task_speed = 13 pass class put_hanoi3(): @@ -1485,7 +1488,7 @@ class kick_ass(): ret, box = filter.get(tlabel.BASE) if ret: error = (box[0][2] + box[0][0] - 320) / 2 - by_cmd.send_speed_omega(-error * 0.8) + by_cmd.send_speed_omega(-error * 0.8) time.sleep(0.02) # by_cmd.send_speed_x(25) # time.sleep(4) diff --git a/subtask_69.py b/subtask_69.py index 4c44c60..81a93b7 100644 --- a/subtask_69.py +++ b/subtask_69.py @@ -415,8 +415,8 @@ class task_queuem(task): class get_block1(): def init(self): var.task_speed = 15 - act.cmd.camera(0) - act.cmd.z2(20, 60, 0) + while (by_cmd.send_angle_camera(0) == -1): + pass filter.switch_camera(1) # if cfg['get_block']['first_block'] == "blue": # self.target_label = tlabel.BBLOCK @@ -439,8 +439,7 @@ class get_block1(): if any(ret): return True return False - - + def exec(self): car_stop() if self.target_counts[0] > self.target_counts[1]: @@ -771,8 +770,8 @@ class get_rball(): logger.info("抓红球") # by_cmd.send_angle_scoop(15) time.sleep(0.5) - by_cmd.send_position_axis_z(30, 170) - time.sleep(2.5) + by_cmd.send_position_axis_z(30, 190) #170 + time.sleep(3.5) by_cmd.send_angle_scoop(7) time.sleep(0.5) by_cmd.send_speed_y(15) @@ -944,7 +943,7 @@ class put_hanoi1(): def after(self): # var.switch_lane_model = True if utils.direction == tlabel.RMARK: - var.pid_turning.set(cfg["put_hanoi1"]["pid_kp"] - 0.3, cfg["put_hanoi1"]["pid_ki"], cfg["put_hanoi1"]["pid_kd"]) + var.pid_turning.set(cfg["put_hanoi1"]["pid_kp"] - 0.4, cfg["put_hanoi1"]["pid_ki"], cfg["put_hanoi1"]["pid_kd"]) else: var.pid_turning.set(cfg["put_hanoi1"]["pid_kp"], cfg["put_hanoi1"]["pid_ki"], cfg["put_hanoi1"]["pid_kd"]) pass @@ -1185,6 +1184,7 @@ class put_hanoi2(): # pass by_cmd.send_speed_x(12) time.sleep(1.5) + var.task_speed = 10 def nexec(self): pass def after(self): @@ -1222,6 +1222,7 @@ class put_hanoi3(): def nexec(self): pass def after(self): + var.task_speed = 0 by_cmd.send_position_axis_x(1, 150) var.pid_turning.set(cfg["put_hanoi3"]["pid_kp"], cfg["put_hanoi3"]["pid_ki"], cfg["put_hanoi3"]["pid_kd"]) diff --git a/subtask_raw.py b/subtask_raw.py index 095f114..c7ae2fb 100644 --- a/subtask_raw.py +++ b/subtask_raw.py @@ -557,7 +557,7 @@ class put_block(): by_cmd.send_distance_x(10, 100) by_cmd.send_position_axis_z(30, 0) time.sleep(0.5) - by_cmd.send_position_axis_x(1, 20) + by_cmd.send_position_axis_x(1, 50) # 20 time.sleep(1) by_cmd.send_angle_claw(63) time.sleep(1) @@ -582,7 +582,7 @@ class put_block(): time.sleep(1) by_cmd.send_position_axis_z(30, 0) time.sleep(0.5) - by_cmd.send_position_axis_x(1, 20) + by_cmd.send_position_axis_x(1, 50) time.sleep(1.5) by_cmd.send_angle_claw(45) time.sleep(1) @@ -702,12 +702,12 @@ class up_tower(): by_cmd.send_distance_x(-10, 120) time.sleep(1) # 上古參數 - # by_cmd.send_distance_y(-10, 50) + by_cmd.send_distance_y(-10, 60) # 6_9 模型參數 - by_cmd.send_distance_y(-10, 40) + # by_cmd.send_distance_y(-10, 40) # 7_12_3 模型參數 # by_cmd.send_distance_y(-10, 50) - # time.sleep(1) + time.sleep(1) car_stop() # FIXME 如果下發 distance 後直接 car_stop,則 distance 執行時間僅由指令間處理延時決定 # time.sleep(3) @@ -758,13 +758,13 @@ class get_rball(): # 靠近塔 by_cmd.send_angle_scoop(20) # 上古參數 - # by_cmd.send_distance_y(-15, 45) # 50 + by_cmd.send_distance_y(-15, 50) # 50 # 6_9 參數 - by_cmd.send_distance_y(-15, 35) - time.sleep(2) + # by_cmd.send_distance_y(-15, 35) + # time.sleep(2) # 7_12_3 參數 # by_cmd.send_distance_y(-15, 45) - # time.sleep(2) + time.sleep(2) car_stop() calibrate_new(tlabel.RBALL,offset = 44, run = True) time.sleep(1) @@ -811,7 +811,7 @@ class put_bball(): calibrate_new(tlabel.BASKET,offset = -40, run = True, run_speed = 6) # by_cmd.send_distance_x(10, 10) # 向左运动 - # by_cmd.send_distance_y(-10, 35) + by_cmd.send_distance_y(-10, 35) # by_cmd.send_angle_storage(10) # time.sleep(1) @@ -944,7 +944,7 @@ class put_hanoi1(): def after(self): # var.switch_lane_model = True if utils.direction == tlabel.RMARK: - var.pid_turning.set(cfg["put_hanoi1"]["pid_kp"] - 0.1, cfg["put_hanoi1"]["pid_ki"], cfg["put_hanoi1"]["pid_kd"]) + var.pid_turning.set(cfg["put_hanoi1"]["pid_kp"] - 0.2, cfg["put_hanoi1"]["pid_ki"], cfg["put_hanoi1"]["pid_kd"]) else: var.pid_turning.set(cfg["put_hanoi1"]["pid_kp"], cfg["put_hanoi1"]["pid_ki"], cfg["put_hanoi1"]["pid_kd"]) pass @@ -1194,6 +1194,7 @@ class put_hanoi2(): else: var.pid_turning.set(cfg["put_hanoi2"]["pid_kp"], cfg["put_hanoi2"]["pid_ki"], cfg["put_hanoi2"]["pid_kd"]) # time.sleep(2) + var.task_speed = 10 pass class put_hanoi3(): @@ -1485,7 +1486,7 @@ class kick_ass(): ret, box = filter.get(tlabel.BASE) if ret: error = (box[0][2] + box[0][0] - 320) / 2 - by_cmd.send_speed_omega(-error * 0.8) + by_cmd.send_speed_omega(-error * 0.8) time.sleep(0.02) # by_cmd.send_speed_x(25) # time.sleep(4) diff --git a/templates/index2.html b/templates/index2.html new file mode 100644 index 0000000..af18952 --- /dev/null +++ b/templates/index2.html @@ -0,0 +1,128 @@ + + +
+ + +